Chủ đề hôm nay anh chọn để chia sẻ cho các bạn sẽ về SortedSet trong lập trình Java. Đây được xem là một trong những kiến thức lập trình Java căn bản mà bất cứ một lập trình viên Java nào cũng cần nắm vững. Trước hết chúng ta cần tìm hiểu SortedSet, tập hợp SortedSet là gì? Sau đó, cùng tìm hiểu các phương thức có trong SortedSet. Anh sẽ hướng dẫn các bạn cách thêm và xóa một phần tử khỏi SortedSet. Hay cách làm như thế nào để lấy phần tử đầu tiên hay cuối cùng trong SortedSet. Áp dụng được từ những chia sẻ trong bài viết để giải quyết các vấn đề khác bao gồm duyệt, sắp xếp các phần tử SortedSet. Cũng như cách để lấy các phần tử đầu và sau của SortedSet trong lập trình hướng đối tượng Java.
1. SortedSet trong lập trình Java là gì
SortedSet là một interface con của Set nó có đủ các chức năng mà Set có như giới thiệu ở bài trước. Ngoài ra có một cái đặt biệt đó là tất cả phần tử trong SortedSet là đều được sắp xếp theo một thứ tự, một trật tự nhất định là sắp xếp tăng dần hay giảm dần.
2. Tập hợp SortedSet
Tập hợp TreeSet là lớp thực thi implementation interface SortedSet. Chúng ta khai báo TreeSet như sau
Mặc định tính năng sắp xếp các phần tử (Sort) là sort theo thứ tự tăng dần. Tuy nhiên chúng ta có thể tự viết ra một thuật toán so sánh khác bằng việc truyền vào một Comparator do chính chúng ta viết vào constructor của TreeSet như sau.
Khi chúng ta duyệt qua các phần tử trong TreeSet mặc định nó sẽ duyệt từ nhỏ đến lớn. Chúng ta cũng có thể nói TreeSet duyệt ngược lại từ lớn đến nhỏ thông qua phương thức descendingIterator như sau
SortedSet cung cấp cho chúng ta phương thức headSet() trả về một SortedSet mới với tất cả các phần tử nhỏ hơn phần tử truyền vào. Ví dụ anh có tập hợp là a,b,c,d,e. Khi anh truyền vào chữ c thì nó sẽ trả cho anh về một SortedSet mới là a và b vì a và b là nhỏ hơn giá trị c mà anh truyền vào.
SortSet cung cấp phương thức tailSet trả về một SortedSet mới với tất cả các giá trị lớn hơn và bằng giá trị truyền vào . Cũng như ví dụ trên a có tập hợp là a,b,c,e,d. Khi anh truyền vào chữ c thì anh sẽ nhận được SortedSet mới là c,d,e