Java: SortedSet
Interface SortedSet mở rộng từ interface Set và trình vòng lặp của nó duyệt các phần tử của nó theo thứ tự tăng dần. Các phần tử có thể được sắp xếp theo thứ tự tự nhiên hoặc bằng cách sử dụng Comparator mà người dùng có thể cung cấp trong khi tạo set được sắp xếp.
SortedSet được sử dụng để tạo danh sách được sắp xếp của các tham chiếu đối tượng không trùng lặp. Thứ tự của một tập hợp đã sắp xếp phải nhất quán với phương thức equals(). Điều này là do interface Set được chỉ định về hoạt động ngang bằng.
Một set được sắp xếp thực hiện tất cả các phép so sánh phần tử bằng phương thức compareTo() hoặc compare(). Vì vậy, hai phần tử được coi là bằng nhau theo phương pháp này mang cùng một trạng thái cho set đã sắp xếp.
Lưu ý - Nếu thứ tự không nhất quán với ngang bằng, thì set được sắp xếp dẫn đến hành vi bình thường nhưng không tuân theo các nguyên tắc chung của interface Set.
Thông thường, các lớp triển khai set được sắp xếp sẽ cung cấp các hàm tạo chuẩn sau:
Hàm tạo không có đối số(void): Nó tạo ra một set đã sắp xếp trống được sắp xếp theo thứ tự tự nhiên của các phần tử của nó.
Hàm tạo một đối số kiểu Comparator: Điều này tạo ra một set sắp xếp trống được sắp xếp theo comparator đã định nghĩa.
Hàm tạo một đối số kiểu Collection: Tạo một set được sắp xếp mới với các phần tử tồn tại như đối số của nó, được sắp xếp theo thứ tự tự nhiên của các phần tử.
Hàm tạo một đối số kiểu SortedSet: Tạo một set được sắp xếp mới với các phần tử và cùng thứ tự tồn tại trong tập hợp đã sắp xếp đầu vào.
SortedSet định nghĩa một số phương thức ngoài các phương thức kế thừa từ interface Set để làm cho việc xử lý set được thuận tiện.
Một số phương thức trong interface này như sau:
first()
Phương thức này trả về phần tử đầu tiên hoặc thấp nhất trong set đã sắp xếp.
Cú pháp:
public E trước ()
last()
Phương thức này trả về phần tử cuối cùng hoặc phần tử cao nhất trong set đã sắp xếp.
Cú pháp:
public E cuối cùng ()
headSet(E endElement)
Phương thức này trả về một thể hiện SortedSet chứa tất cả các phần tử từ đầu của set đến phần tử được chỉ định, endElement, nhưng không bao gồm phần tử kết thúc.
Cú pháp:
public SortedSet <E> headSet (E endElement)
subSet (E startElement, E endElement)
Phương thức này trả về một thể hiện SortedSet bao gồm các phần tử giữa startElement và endElement-1.
Cú pháp:
public SortedSet <E> subSet (E startElement, E endElement)
tailSet(E fromElement)
Phương thức này trả về một thể hiện SortedSet chứa những phần tử lớn hơn hoặc bằng fromElement được chứa trong set được sắp xếp đang gọi.
Cú pháp:
public SortedSet <E> tailSet (E fromElement)
Lưu ý - Một số phương thức ném NoSuchElementException khi không có phần tử nào trong set. Khi một đối tượng không tương thích với các phần tử trong một set thì nó sẽ ném ClassCastException và NullPointerException được ném nếu một đối tượng rỗng được sử dụng.