Sự khác biệt chính - TreeSet vs TreeMap
Một mảng được sử dụng để lưu trữ một tập hợp các phần tử dữ liệu cùng kiểu. Hầu hết các ngôn ngữ lập trình đều hỗ trợ Mảng. Mặc dù một mảng có thể lưu trữ nhiều giá trị; có một bất lợi lớn. Khi mảng được tạo, bạn không thể thay đổi nó. Nếu người lập trình khai báo một mảng có 10 phần tử, thì anh ta không thể lưu trữ 15 phần tử. Khi người lập trình khai báo một mảng gồm 10 phần tử và chỉ lưu trữ 5 phần tử, phần còn lại của bộ nhớ được cấp phát là một sự lãng phí. Các ngôn ngữ lập trình như Java có Bộ sưu tập để lưu trữ động các phần tử dữ liệu. Có một số bộ sưu tập. Bộ sưu tập giúp thực hiện thêm, bớt các phần tử và các thao tác khác. Giao diện cơ sở được gọi là Bộ sưu tập. Đặt, Danh sách và Hàng đợi là một số giao diện mở rộng giao diện Bộ sưu tập. Bản đồ là một giao diện của hệ thống phân cấp bộ sưu tập, nhưng nó không mở rộng giao diện Bộ sưu tập. TreeSet là một lớp thực hiện giao diện Set và lưu trữ các phần tử theo thứ tự tăng dần. TreeMap là một lớp thực hiện giao diện Bản đồ và lưu trữ các cặp khóa, giá trị theo thứ tự tăng dần. Đó là điểm khác biệt chính. Bài viết này thảo luận về sự khác biệt giữa TreeSet và TreeMap.
TreeSet là gì?
TreeSet là một lớp thực hiện giao diện Set. TreeSet duy trì các yếu tố duy nhất. TreeSet triển khai giao diện NavigableSet. Giao diện Navigable mở rộng các giao diện SortedSet, Set, Collection và Iterable theo thứ tự phân cấp. TreeSet lưu trữ các phần tử theo thứ tự tăng dần. Nếu thứ tự chèn là A, C, B, TreeSet sẽ lưu trữ chúng dưới dạng A, B, C. Có các phương thức của TreeSet. Phương thức add được sử dụng để thêm một phần tử vào Set. Phương thức remove được sử dụng để loại bỏ một phần tử được chỉ định. Phương thức rõ ràng được sử dụng để loại bỏ tất cả các phần tử. Phương thức chứa trả về giá trị true nếu phần tử được chỉ định có trong Tập hợp. Chúng là một số phương pháp được cung cấp bởi TreeSet. Tham khảo chương trình bên dưới.
Hình 01: Chương trình sử dụng TreeSet
Theo chương trình trên, Treeset là một đối tượng kiểu TreeSet. Nó có thể lưu trữ các Chuỗi. Các phần tử được thêm vào bằng cách sử dụng phương thức thêm. Thứ tự chèn là A, C, D và B. Sử dụng trình lặp, các giá trị được lưu trữ sẽ được in ra màn hình. Các phần tử được lưu trữ theo thứ tự A, B, C, D. Do đó, TreeSet duy trì thứ tự tăng dần của các phần tử của Tập hợp. Nếu có một phần tử khác là “D” thì nó sẽ không in vì phần tử D đã tồn tại trong Tập hợp. Nó luôn lưu trữ các yếu tố độc đáo.
TreeMap là gì?
TreeMap là một lớp thực hiện giao diện Bản đồ. Bản đồ hỗ trợ các cặp khóa-giá trị. Mỗi cặp khóa, cặp giá trị là một mục nhập. Mỗi khóa là duy nhất và có giá trị tương ứng. Phương thức containsKey được sử dụng để tìm một khóa cụ thể trong khi phương thức containsValue được sử dụng để tìm một giá trị cụ thể. Phương thức get được sử dụng để tìm giá trị tương ứng với khóa đã cho. Phương thức put được sử dụng để lưu trữ một giá trị với khóa đã cho. Cũng có thể loại bỏ một phần tử tại một khóa cụ thể bằng cách sử dụng phương thức remove. Đó là một số phương pháp phổ biến của giao diện Bản đồ. Nó giúp tìm kiếm, chèn và xóa các phần tử dựa trên khóa. Lớp TreeMap thực hiện NavigableMap. NavigableMap mở rộng SortedMap. SortedMap mở rộng Bản đồ. Do đó, các phương thức của Bản đồ có thể được sử dụng với TreeMap. Tham khảo chương trình bên dưới.
Hình 02: Chương trình sử dụng TreeMap
Theo chương trình trên, một đối tượng của TreeMap được tạo. 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. Phương thức put được sử dụng để chèn các cặp khóa, giá trị. Phương thức get được sử dụng với khóa cụ thể để tìm nạp các phần tử. Lập trình viên có thể sử dụng Map. Entry để in tất cả các khóa và giá trị. Khi quan sát đầu ra, nó không duy trì thứ tự đã chèn. Nó lưu trữ các phần tử theo thứ tự tăng dần.
Điểm giống nhau giữa TreeSet và TreeMap là gì?
- Cả TreeSet và TreeMap đều nằm trong hệ thống phân cấp bộ sưu tập.
- Cả TreeSet và TreeMap đều duy trì thứ tự tăng dần.
- Cả TreeSet và TreeMap đều có thể lưu trữ và thao tác nhiều phần tử.
Sự khác biệt giữa TreeSet và TreeMap là gì?
TreeSet vs TreeMap |
|
TreeSet là một lớp thực hiện giao diện Đặt và lưu trữ các phần tử theo thứ tự tăng dần. | TreeMap là một lớp thực hiện giao diện Bản đồ và lưu trữ các cặp khóa, giá trị theo thứ tự tăng dần. |
Giao diện đã triển khai | |
TreeSet triển khai Giao diện thiết lập. | TreeMap triển khai giao diện Bản đồ. |
Tóm tắt - TreeSet vs TreeMap
Mảng được sử dụng để lưu trữ một tập hợp các phần tử, nhưng nó không giúp ích gì cho việc lưu trữ động các phần tử. Các ngôn ngữ lập trình như Java chứa Bộ sưu tập để lưu trữ động các phần tử dữ liệu. Bộ sưu tập là lớp cơ sở trong phân cấp bộ sưu tập. Nó bao gồm các lớp và giao diện để thực hiện các thao tác như thêm, xóa các phần tử. Tập hợp và Bản đồ là hai giao diện của phân cấp Tập hợp. TreeSet là một lớp thực hiện giao diện Set và lưu trữ các phần tử theo thứ tự tăng dần. TreeMap là một lớp thực hiện giao diện Bản đồ và lưu trữ các cặp khóa, giá trị theo thứ tự tăng dần. Đó là sự khác biệt giữa TreeSet và TreeMap.