如果是根据单个字段排序,lambda表达式就可以,使用的是stream().sorted()方法
对两个或多个,使用List自带的sort方法,根据业务要求自行调整优先排序字段
public static List<Person> sortByNameAndAge(List<Person> list){
list.sort(new Comparator<Person>() {
@Override
public int compare(Person o1, Person o2) {
if (o1.getName().compareTo(o2.getName()) > 0){
return 1;
}else if (o1.getName().compareTo(o2.getName()) < 0){
return -1;
}else {
if (o1.getAge() > o2.getAge()){
return 1;
}else {
return -1;
}
}
}
});
return list;
}
以上代码的意思是:现根据姓名排序,如果姓名一样,就根据年龄排序,排完序后的集合呈现姓名优先,年龄其次的升序排列