//1、lambda表达式按照单个汉字属性进行排序
personList.sort((o1, o2) -> {
Collator instance = Collator.getInstance(Locale.CHINA);
return instance.compare(o1.getName(),o2.getName());
});
//2、定义独立的lambda表达式,实现多属性排序,先按照汉字升序排序,汉字相同则按照年龄降序排序
Comparator<Person> personComparator = (Person o1, Person o2) -> {
Collator instance = Collator.getInstance(Locale.CHINA);
return instance.compare(o1.getName(), o2.getName());
};
personList.sort(
personComparator.thenComparing(Person::getAge, Comparator.reverseOrder())
);
//3、多条件排序
List<TestInfo> sortList = testInfos.stream().sorted(
// 以年龄排序,年龄高的在前
Comparator.comparing(TestInfo::getAge, Comparator.reverseOrder())
// 再以月份排序,月份高的在前
.thenComparing(TestInfo::getOnMonth, Comparator.reverseOrder())
// 再以评分排序,评分高的在前
.thenComparing(TestInfo::getScore, Comparator.reverseOrder())).collect(Collectors.toList()
);