很多时候由于需求的复杂性,很多直接从数据库查出的数据并不能直接返回前端,需要进行处理,处理之后又需要排序,这时候一般都会使用Stream流的Sort排序
正序(升序)
list=list.stream().sorted().collect(Collectors.toList());或者
list.stream().sorted(Comparator.comparing(Student::getAge)) 倒序(降序)
list.stream().sorted(Comparator.reverseOrder())或者
list.stream().sorted(Comparator.comparing(Student::getAge).reversed())有时候数据库会有一些错误数据,但是又要求程序不能报错,这怎么办呢?
1.含空值的正序(升序)排序(按创建时间排序)
list=list.stream().sorted(Comparator.comparing(l -> l.getCreateTime(), Comparator.nullsFirst(Date::compareTo))).collect(Collectors.toList());如果创建时间可能为空就会报错
2.含空值的倒序(降序)排序
nullsFirst:空值放第一位
list=list.stream().sorted(Comparator.comparing(l -> l.getCreateTime(), Comparator.nullsFirst(Date::compareTo).reversed())).collect(Collectors.toList());nullsLast:空值放最后
list=list.stream().sorted(Comparator.comparing(l -> l.getCreateTime(), Comparator.nullsLast(Date::compareTo).reversed())).collect(Collectors.toList());// 正序
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());发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/169877.html原文链接:https://javaforall.cn