参考文献

java.util.Comparator

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
List<User> list = new ArrayList<>();
// 根据单个字段排序 升序
list.sort(Comparator.comparing(User::getName));
// 根据多个字段排序 升序
list.sort(Comparator.comparing(User::getName)
.thenComparing(User::getAge));

// 根据单个字段排序 降序
list.sort(Comparator.comparing(User::getName, Comparator.reverseOrder()));
// 根据多个字段排序 升序
list.sort(Comparator.comparing(User::getName, Comparator.reverseOrder())
.thenComparing(User::getAge, Comparator.reverseOrder()));

// 处理null值情况 值为null的元素排在前面
list.sort(Comparator.nullsFirst(Comparator.comparing(User::getName)));
//所有的空元素将被排在最后,不影响非空元素排序
list.sort(Comparator.nullsLast(Comparator.comparing(User::getName)));