📅  最后修改于: 2023-12-03 15:01:34.091000             🧑  作者: Mango
Java中的树集是一种基于树的数据结构,实现了 Set 和 SortedSet 接口。由于树集能够自动进行排序和去重,所以在 Java 开发中被广泛应用。
TreeSet是Java中的一种实现了SortedSet接口的集合,它是基于红黑树实现的。TreeSet中的元素会按照自然顺序排序或者按照Comparator规定的顺序进行排序。
TreeSet中的元素如果是基本数据类型,会按照数值大小进行排序,如果是对象,需要实现Comparable接口并重写compareTo方法。
下面是一个例子:
import java.util.TreeSet;
public class Main {
public static void main(String[] args) {
TreeSet<Integer> treeSet = new TreeSet<>();
treeSet.add(5);
treeSet.add(3);
treeSet.add(8);
System.out.println(treeSet);
}
}
输出结果为:
[3, 5, 8]
如果要实现自己定义的排序方式,就需要使用比较器Comparator。Comparator可以在创建TreeSet对象时作为参数传入。
下面是一个例子:
import java.util.Comparator;
import java.util.TreeSet;
public class Main {
public static void main(String[] args) {
TreeSet<Integer> treeSet = new TreeSet<>(new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
return o2 - o1;
}
});
treeSet.add(5);
treeSet.add(3);
treeSet.add(8);
System.out.println(treeSet);
}
}
输出结果为:
[8, 5, 3]
通过使用Java中的TreeSet,我们可以很方便地实现集合元素的排序和去重,而且支持自然排序和比较器排序,可以满足不同业务场景的需求。