问题描述

最近写接口的时候,查完数据顺手排序了一下,结果列表数据始终是乱序的,查了好久都没看出问题,最后才发现是自己写list.sort写习惯了,把list.stream.sorted也当成list.sort使用了。

知识盘点

一、list.sort

用法

templateObjs.sort(Comparator.comparing(AnalysisTemplateObj::getGroupKey,Comparator.nullsFirst(Comparator.naturalOrder())).thenComparing(AnalysisTemplateObj::getOrder,Comparator.nullsFirst(Comparator.naturalOrder())));

源码分析

default void sort(Comparator<? super E> c) {Object[] a = this.toArray();Arrays.sort(a, (Comparator) c);ListIterator<E> i = this.listIterator();for (Object e : a) {i.next();i.set((E) e);}}

可以看出:sort() 方法根据指定的顺序对动态数组中的元素进行排序,它不返回任何值,只是更改动态数组列表中元素的顺序。

二、list.stream.sorted

List<SummaryExecuteConfigEntity> list = list.stream().sorted(Comparator.comparing(SummaryExecuteConfigEntity::getOrder,Comparator.nullsFirst(Comparator.naturalOrder()))).collect(Collectors.toList());

list.sort和list.stream.sorted相关推荐

  1. java sort 效率_性能对比:collections.sort vs treeSet sort vs java8 stream.sorted

    0 写在前面的话 在项目中有一个排序问题,考虑到未来需要排序的数据量可能很大,想用一个性能较好的排序算法,现在有三套解决方法:jdk提供的集合的sort方法(Collections.sort).一个可 ...

  2. Java8-使用stream.sorted()对List排序

    1.流的定义 Stream 中文称为 "流",通过将集合转换为这么一种叫做 "流" 的元素序列,通过声明性方式,能够对集合中的每个元素进行一系列并行或串行的操作 ...

  3. java util包排序,利用stream sorted进行降序排序

    根据value值的大小进行降序排序,并进行截取. public static void main(String[] args) { List> list = Lists.newArrayList ...

  4. Java8 stream sorted排序时包括null

    1. 需求:JDK8 stream sort排序时,排序字段有null 1,查找stream.sorted源码看到有Comparator.nullsFirst和Comparator.nullsLast ...

  5. JDK8 集合排序 xxxList.stream.sorted(...)

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. # 默认 list.stream().sorted() list.stream().sorted(C ...

  6. java sortedlist 固定容量_Java8 使用 stream().sorted()对List集合进行排序的操作

    1.声明一个测试对象 import java.time.LocalDate; import java.util.List; import lombok.Data; @Data public class ...

  7. java8的sorted,Java8排序stream.sorted()

    使用Java8排序stream.sorted() sorted-example 国外对Java8一系列总结的不错, 翻译过来给你们共享 这篇文章将会讲解Java 8 Stream sorted()示例 ...

  8. JDK 8 之 Stream sorted() 示例

    原文链接:http://www.concretepage.com/java/jdk-8/java-8-stream-sorted-example 国外对Java8一系列总结的不错, 翻译过来给大家共享 ...

  9. Java stream().sorted()实现排序(升序、降序、多字段排序)

    1 自然排序 sorted():自然排序,流中元素需实现Comparable接口 package com.entity;import lombok.*;@Data @ToString @AllArgs ...

最新文章

  1. [转] linux系统文件流、文件描述符与进程间关系详解
  2. Hadoop 2.X 从入门到精通系列视频课程套餐
  3. 【Windows 逆向】使用 CE 分析内存地址 ( 运行游戏 | 使用 CE 工具分析游戏内子弹数量对应的内存地址 | 内存地址初步查找 | 使用二分法定位最终的内存地址 )
  4. 第5章-Vue.js交互及生命周期练习
  5. tf.gather( )的详细解析
  6. 做好项目,从正确定义问题开始!
  7. Stream操作Collection集合
  8. 【DSP开发】HyperLink 编程和性能考量
  9. pb 判断sql 是否合法_宜信技术|《SQL优化最佳实践》作者带你重新了解SQL
  10. Mac上重装pycharm打不开的解决方法
  11. 「非推广」为什么我说本是设计师专属的『数位板』,也是程序猿+科研狗的开会神器?
  12. IRF(智能弹性架构)
  13. 一键重装系统后电脑黑屏怎么办,电脑系统重装黑屏
  14. ECharts地图,自定义map地图显示不同图标点,点击标点显示不同弹框
  15. isam 驱动程序 下载_将ISAM反向代理配置为与OpenID连接提供程序的PEP
  16. 练习-Java多路分支之月份天数计算
  17. ProGuard入门
  18. 推荐系统学习笔记——四、Netfilx经典推荐系统架构
  19. Python使用问题锦集
  20. java设计一个排队叫号系统_一个简易的叫号系统实现方案

热门文章

  1. [转载]高一语文必修一寒假作业二
  2. MySQL中Invalid default value错误解决方法
  3. tableau-计算一个月内的第几周
  4. 怎样制作u盘系统安装盘图文教程
  5. html div peidui,AirPods怎么删除配对过的设备 airpods可以和电脑连接的。
  6. 助力高效办公,TOM企业邮箱网页版全面升级
  7. 微博实时话题和搜索微博实时抓取
  8. 聊聊“元宇宙” —— 设备篇
  9. matlab怎么输入斜杠,如何实现Matlab的mldivide(又称反斜杠运算符“ \”)
  10. java 替换斜杆与反斜杠