跟C++中的set差不多,主要在比较方法重写上不太一样
第一种排序方式
Javabean类实现Comparable
接口指定比较规则
public class Student implements Comparable<Student> {
@Override
public int compareTo(Student o) {
return this.getAge() - o.getAge();//升序
}
}
第二种排序方式
在创建TreeSet对象时传入一个比较器(实现了Comparator接口的类)
TreeSet<String> ts = new TreeSet<>(new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
return o1.length() -o2.length();//长度升序
}
});
这个接口是一个函数式接口,可以用lambda
TreeSet<String> ts = new TreeSet<>((o1, o2) -> {
return o1.length() - o2.length();
});