Hầu hết các ngôn ngữ lập trình đều hỗ trợ Mảng. Nó là một cấu trúc dữ liệu được sử dụng để lưu trữ nhiều yếu tố của cùng một loại dữ liệu. Nếu có mảng được khai báo cho sáu phần tử, thì nó không thể được sử dụng để lưu trữ mười phần tử. Do đó, mảng không động và không thể thay đổi kích thước của mảng sau khi được khai báo. Các ngôn ngữ lập trình như Java hỗ trợ Bộ sưu tập được sử dụng để lưu trữ dữ liệu động. Bộ sưu tập hỗ trợ các hoạt động như thêm các yếu tố và xóa các yếu tố. Có một số giao diện và các lớp trong hệ thống phân cấp bộ sưu tập. Giao diện cơ sở là giao diện Collection. Set là giao diện mở rộng giao diện Collection. Nó không cho phép sao chép. TreeSet và Hashset là hai lớp trong hệ thống phân cấp Bộ sưu tập và cả hai đều thực hiện giao diện Set. TreeSet là một lớp thực hiện giao diện Set và nó được sử dụng để lưu trữ các phần tử duy nhất theo thứ tự tăng dần. Hashset là một lớp thực hiện giao diện Set và nó được sử dụng để lưu trữ các phần tử duy nhất bằng cơ chế Hashing. Các sự khác biệt chính giữa TreeSet và Hashset là thế TreeSet lưu trữ các phần tử theo thứ tự tăng dần trong khi Hashset không lưu trữ các phần tử theo thứ tự tăng dần. Cả TreeSet và Hashset chỉ lưu trữ các yếu tố duy nhất.
1. Tổng quan và sự khác biệt chính
2. Cây trồng là gì
3. Hashset là gì
4. Điểm tương đồng giữa Treeset và Hashset
5. So sánh cạnh nhau - TreeSet so với Hashset ở dạng bảng
6. Tóm tắt
Lớp TreeSet thực hiện giao diện Navigableset. Giao diện NavigableSet mở rộng các giao diện Sortedset, Set, Collection và Iterable theo thứ tự phân cấp. TreeSet luôn duy trì thứ tự tăng dần. Nếu các phần tử được chèn theo thứ tự B, A, C, chúng sẽ được lưu trữ dưới dạng A, B, C. Các phương thức như add (), remove () có thể được sử dụng với đối tượng TreeSet. Phương thức add có thể được sử dụng để thêm một phần tử. Phương thức remove được sử dụng để xóa một phần tử khỏi bộ sưu tập. Đó là một số phương pháp có thể được sử dụng với Treeset.
Hình 01: Chương trình với Treeset
Theo chương trình trên, một đối tượng thuộc kiểu TreeSet được tạo. Các phần tử dữ liệu chuỗi được thêm vào đối tượng đó bằng phương thức add. Thứ tự chèn dữ liệu là A, D, A, B, C, D. Sử dụng trình lặp, các giá trị được lưu trữ được in ra màn hình. Đầu ra là A, B, C, D. Mặc dù, có hai chữ A và hai chữ D, đầu ra hiển thị mỗi chữ A và một chữ D. Do đó, TreeSet lưu trữ các yếu tố độc đáo. Không có thứ tự chèn cụ thể nhưng khi quan sát đầu ra, có thể thấy rằng TreeSet duy trì thứ tự tăng dần của các phần tử.
Lớp Hashset mở rộng lớp Tóm tắt cài đặt Giao diện cài đặt. Giao diện Set kế thừa các giao diện Collection và Iterable theo thứ tự phân cấp. Trong Hashset, không có gì đảm bảo rằng các phần tử sẽ duy trì thứ tự tăng dần và thứ tự được chèn. Nếu thứ tự được chèn là A, B, C thì các giá trị có thể lưu dưới dạng C, A, B. Thứ tự lưu trữ cũng có thể là A, B, C nhưng không có gì đảm bảo rằng thứ tự được chèn hoặc thứ tự tăng dần được duy trì.
Hình 02: Chương trình với Hashset
Theo chương trình trên, một đối tượng thuộc loại Hashset được tạo. Các phần tử dữ liệu chuỗi được thêm vào đối tượng đó bằng phương thức add. Thứ tự chèn dữ liệu là L, R, M, M, R, L. Sử dụng trình lặp, các giá trị được lưu trữ được in ra màn hình. Đầu ra là R L M. Mặc dù, có hai chữ cái L, R và M từ mỗi, chỉ có một chữ cái được hiển thị. Do đó, Hashset lưu trữ các yếu tố độc đáo. Khi quan sát đầu ra, có thể thấy rằng không có thứ tự tăng dần hoặc thứ tự chèn được duy trì.
TreeSet vs Hashset | |
TreeSet là một lớp trong hệ thống phân cấp bộ sưu tập được sử dụng để lưu trữ các phần tử duy nhất theo thứ tự tăng dần. | Hashset là một lớp trong hệ thống phân cấp bộ sưu tập được sử dụng để lưu trữ các phần tử duy nhất bằng cơ chế Hashing. |
Yếu tố lưu trữ | |
Treeset lưu trữ các yếu tố theo thứ tự tăng dần. | Hashset không lưu trữ các phần tử theo thứ tự tăng dần. |
Trong lập trình, cần phải lưu trữ các yếu tố dữ liệu một cách linh hoạt. Các ngôn ngữ lập trình như Java hỗ trợ Bộ sưu tập để đạt được nhiệm vụ này. Có một số giao diện và các lớp trong hệ thống phân cấp bộ sưu tập. Treeset và Hashset là hai lớp trong hệ thống phân cấp Bộ sưu tập. Cả hai đều thực hiện giao diện Set. TreeSet là một lớp thực hiện giao diện Set và nó được sử dụng để lưu trữ các phần tử duy nhất theo thứ tự tăng dần. Hashset là một lớp thực hiện giao diện Set và nó được sử dụng để lưu trữ các phần tử duy nhất bằng cơ chế Hashing. Sự khác biệt giữa Treeset và Hashset là TreeSet lưu trữ các phần tử theo thứ tự tăng dần trong khi Hashset không lưu trữ các phần tử theo thứ tự tăng dần. Bài viết này đã thảo luận về sự khác biệt giữa Treeset và Hashset.
1. Bộ dữ liệu trong Java - javatpoint. JavaPoint. Có sẵn ở đây
2. Hash Hashset trong Java - javatpoint. JavaPoint . Có sẵn ở đây