Computer >> Máy Tính >  >> Lập trình >> Java

Sự khác biệt giữa HashMap và TreeMap trong Java


Trong bài đăng này, chúng ta sẽ hiểu sự khác biệt giữa hashmap và treemap, được liên kết với Java.

HashMap

  • Nó là một bảng băm trong Java.

  • Nó dựa trên việc triển khai giao diện 'bản đồ'.

  • Nó triển khai các giao diện ‘Bản đồ,‘ Có thể sao chép ’và‘ Có thể nối tiếp hóa ’.

  • Nó cho phép một khóa null.

  • Nó cũng cho phép nhiều giá trị rỗng.

  • Nó nhanh hơn so với Treemap.

  • Điều này là do nó cung cấp các hiệu suất thời gian không đổi, tức là O (1) cho các hoạt động như "get" và "put".

  • Nó không thực hiện phân loại trên các khóa.

  • Do đó, nó cho phép các phần tử không đồng nhất trong HashMap.

  • Nó không duy trì thứ tự của các phần tử.

  • Nó có thể được sử dụng khi KHÔNG cần cặp khóa-giá trị theo thứ tự đã sắp xếp.

  • Nó sử dụng phương thức ‘bằng’ của lớp Đối tượng để so sánh các khóa.

  • Phương thức ‘bằng’ của lớp Bản đồ ghi đè nó.

  • Nó chỉ chứa các phương thức cơ bản như ‘KeySet’, ‘get’, ‘put’.

Bản đồ cây

  • Nó là một cấu trúc cây được sử dụng trong Java.

  • Nó dựa trên việc triển khai giao diện 'bản đồ'.

  • Nó triển khai ‘NavigableMap’, ‘Cloneable’ và giao diện ‘Serializable’.

  • Nó không cho phép các khóa rỗng.

  • Nó cho phép nhiều giá trị rỗng.

  • Nó cho phép các giá trị đồng nhất như một khóa vì nó được sắp xếp.

  • Nó chậm hơn so với HashMap vì nó cung cấp độ phức tạp O (log (n)) cho hầu hết các hoạt động như add (), remove () và chứa ().

  • Nó sử dụng cây Đỏ-Đen bên trong.

  • Cây đỏ đen là Cây tìm kiếm nhị phân tự cân bằng.

  • Phương thức CompareTo () được sử dụng để so sánh các khóa.

  • Nó có nhiều chức năng, chẳng hạn như tailMap (), firstKey (), lastKey (), thăm dò ý kiếnFirstEntry (), thăm dò ý kiến ​​().

  • Các phần tử được sắp xếp theo thứ tự tăng dần, còn được gọi là thứ tự tự nhiên.

  • Nó được sử dụng khi yêu cầu là một cặp khóa-giá trị theo thứ tự được sắp xếp.