List<Person> persons = new ArrayList<>();
// 通过内部类的方式
Collections.sort(persons, new Comparator<Person>() {
@Override
public int compare(Person o1, Person o2) {
return o1.getAge() - o2.getAge();
}
});
// 使用Lambada表达式代替内部类
Collections.sort(persons, (o1, o2) -> o1.getAge() - o2.getAge());
// 通过Comparator静态方法
Collections.sort(persons,Comparator.comparing(p->p.getAge()));
// 使用方法引用method reference 替换Lambada表达式
Collections.sort(persons,Comparator.comparing(Person::getAge));
// 逆序排列
Collections.sort(persons,Comparator.comparing(Person::getAge).reversed());
// 年龄相同则按照姓名排序
Collections.sort(persons,Comparator.comparing(Person::getAge).thenComparing(Person::getName));
// 只用使用List接口提供的sort方法
persons.sort(Comparator.comparing(Person::getAge).thenComparing(Person::getName));
Java8 List的排序优化演变
最新推荐文章于 2022-06-08 10:47:44 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)