Java TreeSet学习笔记

跟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();
});
img_show