场景复现:
面试官问题:
Java中对一个集合排序遇到过吗?怎么做的?
当时回复:
有遇到过,是用的sort()方法。
面试官追问:
具体使用呢,比如集合中people对象的年龄字段排序
当时回复:
getAge(),作为参数传进去,具体忘记了。
事后复盘:
普通方法
Collections.sort(peopleList, new Comparator<People>() {
@Override
public int compare(People p1, People p2) {
// 按照年龄进行升序排列
if (o1.getAge() > o2.getAge()) {
return 1;
}
if (o1.getAge() == o2.getAge()) {
return 0;
}
return -1;
}
});
JDK8以上流式编程
List<People> listSort =
list.stream().sorted(
Comparator.comparing(People::getAge)
.reversed()
.thenComparing(People::getScore))
.collect(Collectors.toList());