Sự khác biệt chính - HashMap vs TreeMap
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 khuôn khổ 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 cần lưu trữ. Đó là một hạn chế của mảng. Thay vào đó, người lập trình có thể sử dụng các bộ sưu tập. Các thao tác 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 để biểu diễ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 Bản đồ. HashMap là một lớp thu thậ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 thứ tự cụ thể trong các phần tử dữ liệu. Sơ đồ cây là một lớp thu thậ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. Sự khác biệt chính giữa HashMap và TreeMap là HashMap không duy trì một thứ tự cụ thể trong các phần tử dữ liệu trong khi TreeMap duy trì thứ tự tăng dần của các phần tử dữ liệu.
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à triển khai giao diện Bản đồ. HashMap chứa các cặp khóa, giá trị. Mỗi phần tử là duy nhất. Có thể dễ dàng tìm thấy các phần tử trong HashMap bằng cách sử dụng khóa. Khai báo HashMap như sau.
public class HashMap mở rộng AbstractMap triển khai Map, Cloneable, Serializable
K chỉ 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, cặp giá trị là một mục nhập của HashMap.
Hình 01: Giao diện bản đồ
Giả sử một tình huống 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 học sinh được sử dụng để tìm số chỉ mục. Do đó, tên học sinh là 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 đó, người lập trình có thể thêm các phần tử bằng cách sử dụng đối tượng đó. Giá trị có thể được chèn bằng cách sử dụng phương pháp đặt. Để 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 (“150”); nó sẽ in tên tương ứng với chỉ mục đó là Ann. Nếu người lập trình muốn nhận 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 kết quả đầu ra, có thể thấy rằng 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 phần tử được in theo thứ tự ngẫu nhiên.
TreeMap là gì?
Bản đồ cây là một lớp trong Java cài đặt 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 Bản đồ NavigableMap và Bản đồ NavigableMap mở rộng Bản đồ đã sắp xếp và Bản đồ đã sắp xếp mở rộng Bản đồ. Mỗi phần tử là duy nhất. Khai báo Sơ đồ cây như sau.
public class TreeMap mở rộng AbstractMap triển khai NavigableMap, Cloneable, Serializable
K chỉ 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, cặp giá trị là một mục nhập của Sơ đồ cây.
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 đó, người lập trình có thể thêm các phần tử bằng cách sử dụng đối tượng đó. Giá trị có thể được chèn bằng cách sử dụng phương pháp đặt. Để 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 (“150”); nó sẽ in tên tương ứng với chỉ mục đó là Ann. Nếu người lập trình muốn nhận 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 phần tử được in theo thứ tự tăng dần.
Điểm giống nhau giữa HashMap và TreeMap là gì?
- Cả HashMap và TreeMap đều triển khai giao diện Bản đồ.
- Cả HashMap và TreeMap đều có thể lưu trữ và thao tác nhiều phần 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ị rỗng.
- 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 |
|
A HashMap là lớp thu thậ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 thứ tự cụ thể trong các phần tử dữ liệu. | Bản đồ cây là một lớp thu thậ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ự. | Bản đồ cây duy trì thứ tự tăng dần. |
Null Key | |
Bản đồ HashMap có thể chứa một khóa rỗng. | Bản đồ cây không được có khóa rỗng. |
Hiệu suất | |
HashMap nhanh hơn TreeMap. | TreeMap chậm hơn HashMap. |
Tóm tắt - HashMap vs TreeMap
Ngôn ngữ lập trình như Java có chứa khung 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 tập hợp, người lập trình có thể lưu trữ nhiều phần 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 khung. HashMap là một lớp thu thậ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 thứ tự cụ thể trong các phần tử dữ liệu. Sơ đồ cây là một lớp thu thậ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 triển khai giao diện Bản đồ. Sự khác biệt giữa HashMap và TreeMap là HashMap không duy trì một thứ tự cụ thể trong các phần tử dữ liệu trong khi TreeMap duy trì thứ tự tăng dần của các phần tử dữ liệu.