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

Sự khác biệt chính - HashMap so với Bản đồ cây
 

Trong lập trình, có nhiều cơ chế khác nhau để thu thập dữ liệu. Bộ sưu tập là một phương pháp để lưu trữ dữ liệu. Các ngôn ngữ lập trình như Java sử dụng Bộ sưu tập. Nó là một khung với các lớp và giao diện để lưu trữ và thao tác một tập hợp các phần tử dữ liệu. Trong một mảng bình thường, có một số phần tử cố định để lưu trữ. Đó là một hạn chế của mảng. Thay vào đó, lập trình viên có thể sử dụng các bộ sưu tập. Các hoạt động như chèn, xóa, sắp xếp và tìm kiếm có thể được thực hiện bằng cách sử dụng các bộ sưu tập. Trong Java, giao diện Bản đồ thuộc về các bộ sưu tập. Bản đồ được sử dụng để thể hiện dữ liệu trong các cặp khóa, giá trị. Chỉ có các khóa duy nhất và mỗi khóa có một giá trị tương ứng. HashMap và TreeMap là các lớp thực hiện giao diện Map. HashMap là một lớp bộ sưu tập dựa trên Bản đồ được sử dụng để lưu trữ các cặp khóa và giá trị không duy trì một trật tự cụ thể trong các thành phần dữ liệu. TreeMap là một lớp bộ sưu tập dựa trên Bản đồ được sử dụng để lưu trữ các cặp khóa và giá trị duy trì thứ tự tăng dần của các thành phần dữ liệu. Các sự khác biệt chính giữa HashMap và TreeMap là thế HashMap không duy trì một thứ tự cụ thể trong các thành phần dữ liệu trong khi TreeMap duy trì thứ tự tăng dần của các thành phần dữ liệu.

NỘI DUNG

1. Tổng quan và sự khác biệt chính
2. HashMap là gì
3. Bản đồ cây là gì
4. Điểm tương đồng giữa HashMap và TreeMap
5. So sánh cạnh nhau - HashMap so với TreeMap ở dạng bảng
6. Tóm tắt

HashMap là gì?

HashMap là một lớp thực hiện giao diện bản đồ. Nó mở rộng lớp AbstractMap và thực hiện giao diện Map. HashMap chứa các cặp khóa, giá trị. Mỗi yếu tố là duy nhất. Thật dễ dàng để tìm thấy các yếu tố trong HashMap bằng cách sử dụng khóa. Khai báo HashMap như sau.

lớp công khai HashMap mở rộng Tóm tắt Bản đồ thực hiện Bản đồ, Có thể sao chép, Nối tiếp

K tham chiếu khóa trong khi V đề cập đến giá trị tương ứng với khóa cụ thể đó. Mỗi cặp khóa, giá trị là một mục của HashMap.

Hình 01: Giao diện bản đồ

Giả sử một kịch bản như sau để hiểu HaspMap. Nếu ở đó, lập trình viên muốn lưu trữ một tập hợp các tên sinh viên và số chỉ mục tương ứng, anh ta có thể sử dụng HashMap. Tên sinh viên được sử dụng để tìm số chỉ mục. Do đó, tên sinh viên là chìa khóa trong khi số chỉ mục là giá trị.

Hình 02: Chương trình HashMap sử dụng Java

Theo chương trình trên, một đối tượng của HashMap được tạo. Sau đó, lập trình viên có thể thêm các yếu tố bằng cách sử dụng đối tượng đó. Các giá trị có thể được chèn bằng phương thức put. Để tìm nạp các giá trị, lập trình viên nên sử dụng phương thức get với khóa. Khi sử dụng studentList.get (Tết 150); nó sẽ in tên tương ứng với chỉ mục đó là Ann. Nếu lập trình viên muốn nhận được tất cả các giá trị, thì anh ta có thể sử dụng Map.Entry để in tất cả các khóa và giá trị. Khi quan sát đầu ra, có thể thấy HashMap không duy trì một thứ tự cụ thể. Nó không in các phần tử theo thứ tự chèn. Các yếu tố được in theo thứ tự ngẫu nhiên.

Bản đồ cây là gì?

TreeMap là một lớp trong Java thực hiện giao diện Bản đồ. Tương tự như HashMap, nó cũng được sử dụng để lưu trữ các cặp khóa, giá trị nhưng theo thứ tự tăng dần. TreeMap triển khai NavigableMap và NavigableMap mở rộng SortedMap và SortedMap mở rộng Map. Mỗi yếu tố là duy nhất. Khai báo TreeMap như sau.

lớp công khai TreeMap mở rộng Tóm tắt Bản đồ thực hiện NavigableMap, Clonizable, serializable

K tham chiếu khóa trong khi V đề cập đến giá trị tương ứng với khóa cụ thể đó. Mỗi cặp khóa, giá trị là một mục của TreeMap.

Hình 03: Chương trình TreeMap sử dụng Java

Theo chương trình trên, một đối tượng của TreeMap được tạo. Sau đó, lập trình viên có thể thêm các yếu tố bằng cách sử dụng đối tượng đó. Các giá trị có thể được chèn bằng phương thức put. Để tìm nạp các giá trị, lập trình viên nên sử dụng phương thức get với khóa. Khi sử dụng studentList.get (Tết 150); nó sẽ in tên tương ứng với chỉ mục đó là Ann. Nếu lập trình viên muốn nhận được tất cả các giá trị, thì anh ta có thể sử dụng Map.Entry để in tất cả các khóa và giá trị. Khi quan sát đầu ra, có thể thấy rằng TreeMap duy trì một thứ tự cụ thể. Các yếu tố được in theo thứ tự tăng dần.

Điểm tương đồng giữa HashMap và TreeMap là gì?

  • Cả HashMap và TreeMap đều thực hiện giao diện Bản đồ.
  • Cả HashMap và TreeMap đều có thể lưu trữ và thao tác nhiều yếu tố.
  • Cả HashMap và TreeMap đều chứa các cặp khóa, giá trị.
  • Cả HashMap và TreeMap đều có thể có nhiều giá trị null.
  • Không có giới hạn về số lượng phần tử có thể được lưu trữ trong cả HashMap và TreeMap.

Sự khác biệt giữa HashMap và TreeMap là gì?

HashMap vs TreeMap

HashMap là một lớp bộ sưu tập dựa trên Bản đồ được sử dụng để lưu trữ các cặp khóa và giá trị không duy trì một trật tự cụ thể trong các thành phần dữ liệu. TreeMap là một lớp bộ sưu tập dựa trên Bản đồ được sử dụng để lưu trữ các cặp khóa và giá trị duy trì thứ tự tăng dần của các phần tử dữ liệu.
 Đặt hàng
HashMap không duy trì thứ tự. TreeMap duy trì thứ tự tăng dần.
Khóa không
HashMap có thể chứa một khóa null. TreeMap không thể có khóa null.
 Hiệu suất
HashMap nhanh hơn TreeMap. TreeMap chậm hơn HashMap.

Tóm lược - HashMap so với Bản đồ cây

Các ngôn ngữ lập trình như Java chứa khung công tác thu thập. Trong mảng, có thể có một số phần tử cố định. Do đó, kích thước mảng nên được khởi tạo ngay từ đầu. Trong các bộ sưu tập, lập trình viên có thể lưu trữ nhiều yếu tố theo yêu cầu. Không có số lượng cụ thể để lưu trữ. Bản đồ là một giao diện thuộc bộ sưu tập. HashMap là một lớp bộ sưu tập dựa trên Bản đồ được sử dụng để lưu trữ các cặp khóa và giá trị không duy trì một trật tự cụ thể trong các thành phần dữ liệu. TreeMap là một lớp bộ sưu tập dựa trên Bản đồ, được sử dụng để lưu trữ các cặp khóa và giá trị duy trì thứ tự tăng dần của các phần tử dữ liệu. Bài viết này đã thảo luận về sự khác biệt giữa HashMap và TreeMap thực hiện giao diện Map. Sự khác biệt giữa HashMap và TreeMap là HashMap không duy trì một trật tự cụ thể trong các thành phần dữ liệu trong khi TreeMap duy trì thứ tự tăng dần của các yếu tố dữ liệu.

Tài liệu tham khảo:

1. Bản đồ HashMap trong Java - javatpoint. Điểm, Có sẵn ở đây
2. Bản đồ Tree Tree trong Java - javatpoint.  Điểm, Có sẵn ở đây

Hình ảnh lịch sự:

1.'Java.util.Map phân cấp'By ramlmn - Công việc riêng, (CC BY-SA 4.0) qua Commons Wikimedia