【Stream流】Sort排序详解「建议收藏」

【Stream流】Sort排序详解「建议收藏」很多时候由于需求的复杂性,很多直接从数据库查出的数据并不能直接返回前端,需要进行处理,处理之后又需要排序,这时候一般都会使用Stream流的Sort排序场景一:普通排序正序(升序)list=list.stream().sorted().collect(Collectors.toList());或者list.stream().sorted(Comparator.comparing(Student::getAge))倒序(降序)list.stream().sorted(Comparator.

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

很多时候由于需求的复杂性,很多直接从数据库查出的数据并不能直接返回前端,需要进行处理,处理之后又需要排序,这时候一般都会使用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.net/169877.html原文链接:https://javaforall.net

(0)
上一篇 2022年8月12日 下午4:46
下一篇 2022年8月12日 下午5:00


相关推荐

  • 入门理解H264编码

    入门理解H264编码nbsp nbsp nbsp nbsp nbsp 最近入门音视频技术 一直在学习 H264 编解码标准 了解了不少关于 H264 的相关知识 对于网上各种类型的资料 始终没有找到一篇适合的知识梳理资料 可能是查找方式不对 所以花费了比较多的时间 经过一段时间的熟悉后结合网上各类大神的指导资料决定自己整理一下关于 H264 编解码标准的知识 以后方便自己查阅 也让更多刚入门的人提供一个参考资料 由于是新人 所以有些地方可能有理解不全面 望各位前

    2026年3月20日
    2
  • c语言和vc的区别_c++是c语言的升级版吗

    c语言和vc的区别_c++是c语言的升级版吗returnx+y}fnsub(x,yint)int{returnx-y}就像在Go和C中一样,函数不能重载。这简化了代码并提高了可维护性和可读性。函数可以在声明之前使用:add和sub在main之后声明,但仍然可以从main调用。对于V中的所有声明都是如此,并且不需要头文件或考虑文件和声明的顺序。V的目标之一是向具有不同编译器开发经验的开发人员开放。作者希望编译器不再是让人捉摸不透、只…

    2022年8月12日
    7
  • DateUtil整理

    DateUtil整理背景 DateUtil 整理 便于使用 注 其中大部分功能 jdk 自带或使用第三方工具类即可 推荐使用 hutool 其还有很多方便使用的工具类 dependency groupId cn hutool groupId artifactId hutool all artifactId version 5 3 7 version dependency 特殊

    2026年3月16日
    2
  • vue上传文件流

    vue上传文件流创建formData方法,把文件流以及所有需要上传的数据通过formData.append传入formData中,上传请求中的data中只需要放一个formData就可以了。(此处request为封装的请求方法,省事可以不封装)

    2022年10月16日
    7
  • 将tensor转换为图像_tensor转int

    将tensor转换为图像_tensor转int将tensor转换为numpy

    2022年10月10日
    9
  • var模型eviews操作步骤

    var模型eviews操作步骤VAR 模型 eviews 操作步骤一 平稳性检验 Ex 的单位根检验平稳性 截距项 趋势项与两者都没有都要做完 三个均拒绝 则认为其不平稳 先截距与趋势项 如下图做完后发现不平稳 做一阶差分 此时三项中只要有一项拒绝原假设 则认为平稳可以看到一阶平稳同理对 zb 进行检验与调整 Zb 也是一阶平稳二 格兰杰因果检验平稳后做格兰杰因果检验 需要选中两个变量按 ctrl 键 按组打开 后点击如下

    2026年3月19日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号