下面代码以自然序排序一个list
list.stream().sorted()
自然序逆序元素,使用Comparator 提供的reverseOrder() 方法
list.stream().sorted(Comparator.reverseOrder())
使用Comparator 来排序一个list
list.stream().sorted(Comparator.comparing(Student::getAge))
把上面的元素逆序
list.stream().sorted(Comparator.comparing(Student::getAge).reversed())
当然还可以不用借助steam方式直接排序:
list.sort(Comparator.comparing(Integer::intValue));
list.sort(Comparator.comparing(Integer::intValue).reversed());
list.sort(Comparator.comparing(Student::getAge));
list.sort(Comparator.comparing(Student::getAge).reversed());
多字段排序
// 关键字thenComparing
// 1.先以年龄升序 2.当年龄相同时,在以薪资升序
List<User> userList = lists.stream()
.sorted(Comparator.comparing(User::getAge)
.thenComparing(User::getSalary))
.collect(Collectors.toList());
多字段即升序又降序排序
// 关键 thenComparing、Comparator.reverseOrder()
// 1.先以年龄升序 2.当年龄相同时,在以薪资降序
List<User> userList = lists.stream()
.sorted(Comparator.comparing(User::getAge).thenComparing(User::getSalary,Comparator.reverseOrder()))
.collect(Collectors.toList());