TreeSet是Java中的一個實現了SortedSet接口的集合類,它是一個有序的集合,底層使用紅黑樹(Red-Black tree)數據結構來存儲元素。
使用TreeSet時,需要注意以下幾點:
TreeSet中的元素必須實現Comparable接口,或者在創建TreeSet時提供一個Comparator對象,用于比較元素的順序。
TreeSet中的元素是有序的,按照元素的自然順序或者Comparator對象定義的順序進行排序。
TreeSet中不允許存儲null元素。
下面是一些使用TreeSet的示例:
TreeSet<Integer> set = new TreeSet<>();
set.add(5);
set.add(2);
set.add(8);
System.out.println(set); // 輸出:[2, 5, 8]
TreeSet<String> set = new TreeSet<>(Comparator.reverseOrder());
set.add("apple");
set.add("banana");
set.add("orange");
System.out.println(set); // 輸出:[orange, banana, apple]
class Person implements Comparable<Person> {
private String name;
private int age;
// 構造方法、getter和setter省略
@Override
public int compareTo(Person other) {
return this.age - other.age;
}
}
TreeSet<Person> set = new TreeSet<>();
set.add(new Person("Alice", 25));
set.add(new Person("Bob", 30));
set.add(new Person("Charlie", 20));
System.out.println(set); // 輸出:[Charlie:20, Alice:25, Bob:30]
以上是TreeSet的基本用法,根據實際需求可以靈活地使用Comparator對象和自定義類的Comparable接口來實現不同的排序方式。