Sự khác biệt giữa HashMap và TreeMap trong Java
NộI Dung
HashMap và TreeMap là các lớp Map và cả hai đều thực hiện giao diện Map. Bản đồ là một đối tượng lưu trữ các cặp khóa-giá trị, trong đó mỗi khóa là duy nhất và có thể có các giá trị trùng lặp. Lớp HashMap sử dụng bảng băm làm cấu trúc dữ liệu. TreeMap sử dụng cây đỏ-đen làm cấu trúc dữ liệu. Sự khác biệt chính giữa HashMap và Treemap là Bản đồ băm không bảo toàn thứ tự chèn trong khi, Bản đồ làm.
Vì vậy, chúng ta hãy bắt đầu cuộc thảo luận của chúng tôi về sự khác biệt giữa HashMap và TreeMap với sự trợ giúp của biểu đồ so sánh được hiển thị bên dưới.
- Biểu đồ so sánh
- Định nghĩa
- Sự khác biệt chính
- Phần kết luận
Biểu đồ so sánh
Cơ sở để so sánh | Bản đồ băm | Bản đồ cây |
---|---|---|
Căn bản | HashMap không duy trì thứ tự chèn. | TreeMap duy trì thứ tự chèn. |
Cấu trúc dữ liệu | HashMap sử dụng Bảng Hash làm cấu trúc dữ liệu cơ bản. | TreeMap sử dụng Red-Black Tree làm cấu trúc dữ liệu cơ bản. |
Khóa và giá trị Null | HashMap cho phép khóa Null một lần quảng cáo Null giá trị bất kỳ số lượng thời gian. | TreeMap không cho phép khóa Null nhưng cho phép Null Values bất kỳ số lượng thời gian. |
Mở rộng và triển khai | HashMap mở rộng lớp AbstractMap và thực hiện giao diện Bản đồ. | TreeMap mở rộng lớp AbstractMap và thực hiện giao diện SortedMap và NavigableMap. |
Hiệu suất | HashMap hoạt động nhanh hơn. | TreeMap so với HashMap hoạt động chậm hơn. |
Định nghĩa của HashMap
Bản đồ băm là một lớp Bản đồ. Nó sử dụng bảng băm, như một cấu trúc dữ liệu để lưu trữ cặp giá trị khóa bản đồ. Việc chèn cặp khóa-giá trị được thực hiện bằng cách sử dụng Mã Băm của chìa khóa. Do đó, mỗi khóa trong bản đồ phải là duy nhất vì nó sẽ được sử dụng để truy xuất các giá trị.
Thứ tự chèn trong HashMap là không phải được bảo tồn có nghĩa là đối tượng hashmap không trả về các phần tử theo thứ tự chúng được chèn vào. Mặt khác, thứ tự các phần tử sẽ được trả về không cố định.
Các Chìa khóa được phép là VÔ GIÁ TRỊ cùng một lúc, nhưng giá trị có thể VÔ GIÁ TRỊ tại bất kỳ số lượng thời gian. HashMap có thể chứa không đồng nhất các đối tượng cho các khóa cũng như các giá trị.
Có bốn hàm tạo của HashMap:
HashMap () HashMap (Bản đồ m) HashMap (dung lượng int), HashMap (int dung lượng, float fillRatio)
Các Đầu tiên constructor tạo đối tượng trống của HashMap. Các thứ hai constructor khởi tạo HashMap bằng các phần tử của Map m. Các thứ ba constructor khởi tạo HashMap với dung lượng được cung cấp trong đối số. Các thứ tư constructor khởi tạo dung lượng cũng như tỷ lệ lấp đầy của đối tượng HashMap.
Mặc định sức chứa của HashMap là 16và mặc định tỷ lệ lấp đầy của HashMap là 0.75.
Định nghĩa của TreeMap
Giống như HashMap, Bản đồ cây cũng là một lớp Bản đồ. TreeMap mở rộng Tóm tắt lớp và thực hiện Bản đồ và Sắp xếp bản đồ. Các đối tượng TreeMap lưu trữ các thành phần bản đồ trong cấu trúc cây. Cấu trúc dữ liệu được sử dụng để lưu trữ Bản đồ là Cây đỏ-đen.
TreeMap lưu trữ cặp giá trị khóa theo thứ tự được sắp xếp giúp truy xuất nhanh các phần tử. Đối tượng TreeMap trả về các phần tử trong đã sắp xếp (tăng dần) gọi món.
Có bốn hàm tạo của TreeMap:
TreeMap () TreeMap (Trình so sánh <? Super K> comp) TreeMap (Map <? Extends K ,? Extends V> m) TreeMap (SortedMap Các Đầu tiên các hàm tạo tạo một đối tượng trống của TreeMap sẽ được sắp xếp theo thứ tự tự nhiên các khóa của nó. Các thứ hai constructor sẽ tạo một bản đồ cây trống sẽ được sắp xếp theo So sánh cmp. Các thứ ba hàm tạo ở trên sẽ tạo một bản đồ tre sẽ được khởi tạo bằng các mục nhập của Bản đồ m. Các thứ tư constructor sẽ tạo một bản đồ tre sẽ được khởi tạo bằng các mục nhập của Sắp xếp bản đồ sm. Treemap không có bất kỳ phương thức mới nào, nó sử dụng phương thức giao diện NavigableMap và SortedMap và lớp AbstractMap. TreeMap chỉ nên được sử dụng khi bạn yêu cầu cặp giá trị khóa ở dạng được sắp xếp. Như sắp xếp bao gồm chi phí hiệu suất. HashMap không đồng bộ hoạt động nhanh hơn.
Phần kết luận: