摘录自 参考文章
四种写法 两种方式
传入匿名内部类
第一次见,记录一下,最后两种是正常写法以及方式,改变排序也方便改,这个适合leetcode
TreeMap<Person, String> treeMap = new TreeMap<>(new Comparator<Person>() {
@Override
public int compare(Person person1, Person person2) {
int num = person1.getAge() - person2.getAge();
return Integer.compare(num, 0);
}
});
Lamda表达式
上面的简化版
TreeMap<Person, String> treeMap = new TreeMap<>((person1, person2) -> {
int num = person1.getAge() - person2.getAge();
return Integer.compare(num, 0);
});
Comparator 定制排序
java.util
Collections.sort(arrayList, new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
return o1.compareTo(o2);
}
});
compare接口重写 compareTo 方法
java.lang
public class Person implements Comparable<Person>{
@Override
public int compareTo(Person o) {
if (this.age > o.getAge()) {
return 1;
}
if (this.age < o.getAge()) {
return -1;
}
return 0;
}
}