【Stream流】Sort排序详解「建议收藏」
排序 详解 建议 收藏 stream Sort
2023-06-13 09:13:01 时间
很多时候由于需求的复杂性,很多直接从数据库查出的数据并不能直接返回前端,需要进行处理,处理之后又需要排序,这时候一般都会使用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());
场景三:不用Stream
// 正序
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
相关文章
- 一次性把Python中的排序方法都学透!
- wpf listview 分组_JAVA排序
- VBA: 单元格区域基于指定列重新排序(3)
- hivesql 实现collect_list内排序
- PostgreSQL聚合函数的分组排序使用示例
- oracle中对数字加汉字的排序以及REGEXP_SUBSTR介绍详解数据库
- Oracle由于排序字段错误,导致分页数据错误,错误原因真的想不到!!!详解数据库
- Java基础系列–基础排序算法详解编程语言
- python 实现选择排序详解编程语言
- Go基础之–排序和查找操作详解编程语言
- Java8比较器,如何对 List 排序详解编程语言
- 算法-时间复杂度为O(n)的排序详解编程语言
- ABAP 自定义排序的思想(不用系统标准的SORT语句)详解编程语言
- 计数排序详解编程语言
- Oracle数据库中升序排序的使用(oracle升序排序)
- MySQL字符排序:从简单到复杂(mysql字符排序)
- MySQL中的排序规则指南(mysql的排序规则)
- Oracle自动排序:让你拥有更便捷工作流程(oracle自动排序)
- Oracle中处理重复排序的方法(oracle重复排序)
- SQL Server排序慢:排查及解决方案(sqlserver排序慢)
- Redis实现数据查询与排序(redis 获取数据排序)
- Redis跳表排序原理及实现(redis跳表如何排序)
- php数组函数序列之krsort()-对数组的元素键名进行降序排序,保持索引关系
- 深入arraymultisort排序原理的详解
- 纯C语言:分治快速排序源码分享