Trong lập trình Java, SortedSet
là một giao diện (interface) nằm trong gói java.util
. SortedSet
là một phần mở rộng của giao diện Set
, và nó đại diện cho một tập hợp các phần tử không có thứ tự (unordered) và không chứa các phần tử trùng lặp, nhưng các phần tử được sắp xếp theo thứ tự tăng dần (ascending order) hoặc giảm dần (descending order).
SortedSet
cung cấp các phương thức để thực hiện các hoạt động liên quan đến việc duyệt và truy xuất các phần tử theo thứ tự. Các phần tử trong SortedSet
phải là các đối tượng có thể so sánh với nhau bằng cách sử dụng một trình so sánh (comparator) hoặc phải có khả năng so sánh tự nhiên (implement Comparable
interface).
Dưới đây là một số phương thức quan trọng của giao diện SortedSet
:
Comparator<? super E> comparator()
: Trả về trình so sánh được sử dụng để sắp xếp các phần tử trongSortedSet
. NếuSortedSet
sử dụng trình so sánh tự nhiên, phương thức này trả vềnull
.SortedSet<E> subSet(E fromElement, E toElement)
: Trả về một tập hợp con (subset) chứa các phần tử nằm giữafromElement
vàtoElement
, không bao gồmtoElement
.SortedSet<E> headSet(E toElement)
: Trả về một tập hợp con (subset) chứa các phần tử nhỏ hơntoElement
.SortedSet<E> tailSet(E fromElement)
: Trả về một tập hợp con (subset) chứa các phần tử lớn hơn hoặc bằngfromElement
.E first()
: Trả về phần tử đầu tiên trongSortedSet
.E last()
: Trả về phần tử cuối cùng trongSortedSet
.
Các lớp cụ thể trong Java như TreeSet
đều triển khai giao diện SortedSet
. TreeSet
là một lớp tập hợp dựa trên cây (red-black tree) sắp xếp các phần tử theo thứ tự tăng dần hoặc giảm dần.
Dưới đây là ví dụ về cách sử dụng giao diện SortedSet
và lớp cụ thể TreeSet
:
java
import java.util.SortedSet;
import java.util.TreeSet;
public class SortedSetExample {
public static void main(String[] args) {
SortedSet<Integer> numbers = new TreeSet<>();
// Thêm các phần tử vào SortedSet
numbers.add(5);
numbers.add(2);
numbers.add(8);
numbers.add(1);
// In ra các phần tử theo thứ tự tăng dần
System.out.println("SortedSet (ascending order): " + numbers); // Output: SortedSet (ascending order): [1, 2, 5, 8]
// Trả về tập hợp con chứa các phần tử từ 2 đến 5 (không bao gồm 5)
SortedSet<Integer> subset = numbers.subSet(2, 5);
System.out.println("Subset (2 to 5): " + subset); // Output: Subset (2 to 5): [2]
// Trả về phần tử nhỏ nhất trong SortedSet
int smallest = numbers.first();
System.out.println("Smallest element: " + smallest); // Output: Smallest element: 1
// Trả về phần tử lớn nhất trong SortedSet
int largest = numbers.last();
System.out.println("Largest element: " + largest); // Output: Largest element: 8
}
}
SortedSet
là một giao diện hữu ích trong Java khi bạn cần quản lý các tập hợp được sắp xếp theo thứ tự. Bạn có thể sử dụng lớp cụ thể TreeSet
để triển khai SortedSet
và làm việc với các tập hợp sắp xếp trong ứng dụng của mình.