List<类> list; 代表某集合//返回 对象集合以类属性一升序排序
list.stream().sorted(Comparator.comparing(类::属性一));//返回 对象集合以类属性一降序排序 注意两种写法
list.stream().sorted(Comparator.comparing(类::属性一).reversed());//先以属性一升序,结果进行属性一降序
list.stream().sorted(Comparator.comparing(类::属性一,Comparator.reverseOrder()));//以属性一降序//返回 对象集合以类属性一升序 属性二升序
list.stream().sorted(Comparator.comparing(类::属性一).thenComparing(类::属性二));//返回 对象集合以类属性一降序 属性二升序 注意两种写法
list.stream().sorted(Comparator.comparing(类::属性一).reversed().thenComparing(类::属性二));//先以属性一升序,升序结果进行属性一降序,再进行属性二升序
list.stream().sorted(Comparator.comparing(类::属性一,Comparator.reverseOrder()).thenComparing(类::属性二));//先以属性一降序,再进行属性二升序//返回 对象集合以类属性一降序 属性二降序 注意两种写法
list.stream().sorted(Comparator.comparing(类::属性一).reversed().thenComparing(类::属性二,Comparator.reverseOrder()));//先以属性一升序,升序结果进行属性一降序,再进行属性二降序
list.stream().sorted(Comparator.comparing(类::属性一,Comparator.reverseOrder()).thenComparing(类::属性二,Comparator.reverseOrder()));//先以属性一降序,再进行属性二降序//返回 对象集合以类属性一升序 属性二降序 注意两种写法
list.stream().sorted(Comparator.comparing(类::属性一).reversed().thenComparing(类::属性二).reversed());//先以属性一升序,升序结果进行属性一降序,再进行属性二升序,结果进行属性一降序属性二降序
list.stream().sorted(Comparator.comparing(类::属性一).thenComparing(类::属性二,Comparator.reverseOrder()));//先以属性一升序,再进行属性二降序//空/Null数据排序
list.stream().sorted(Comparator.comparing(类::属性一).thenComparing(item -> item.属性二, Comparator.nullsLast(Date::compareTo))).collect(Collectors.toList());//空/Null数据分组
Map<String, List<类>> map = list.stream().collect(Collectors.groupingBy(item -> {if (item.属性一 == null || item.属性一.equals("")) {return "";}return DateFormat.getDateInstance().format(item.属性一);
}))
  1. Comparator.comparing(类::属性一).reversed();

  2. Comparator.comparing(类::属性一,Comparator.reverseOrder());

两种排序是完全不一样的,一定要区分开来 1 是得到排序结果后再排序,2是直接进行排序,

java8使用 Comparator.comparing 进行排序相关推荐

  1. Java8 lambda表达式,Comparator.comparing().thenComparing()报错

    环境 Java:1.8+ 前言 今天发了一个问题: 问题描述: 对List进行排序,如果在Comparator.comparing()方法中,只使用一个字段排序,没有问题. 但是如果使用多字段排序,并 ...

  2. Comparator.comparing嵌套对象倒序以及多重条件排序

    一.嵌套对象倒序的正确书写方式 描述:对象A内部封装对象B,根据B的字段做倒排 Comparator<User> ageDescCom = Comparator.comparing(tem ...

  3. 【Java 8 新特性】Java Comparator.comparing | 提取对象属性,按照指定规则排序

    Java Comparator.comparing | 提取对象属性,按照指定规则排序 Comparator.comparing Comparator.comparingInt Comparator. ...

  4. java list集合自定义排序_Java 通过 Comparator comparing 对 list 自定义 排序

    摘要: 在日常开发中,经常会用到排序算法,这里记录下日常使用比较多的排序方法,其中包括按指定指定:正序.倒序排序,还有按自定义字段排序的方法,方便日后查看: 一:按指定字段排序,默认倒序,如下写法: ...

  5. java多字段排序,Java8对多个字段排序

    Java8对多个字段排序 创建User对象 public class Users { private Long id; private String name; private String code ...

  6. java8重写comparator,Java 8 Lambda : Comparator 示例

    Developer.java import java.math.BigDecimal; /** * Developer * * @author 三产 * @version 1.0 * @date 20 ...

  7. Comparator.comparing的使用

    这个方法的作用就是根据对象某个属性来进行排序. 我们看一下一般我们使用的方法,和使用Comparator.comparing改进的方法. Collections.sort(tickets, (a, b ...

  8. Java8 Stream 分页-多字段排序-筛选

    分页 list.stream().skip((page-1)*limit).limit(limit).collect(Collectors.toList()) 筛选 Set<String> ...

  9. Java8——Stream流操作List排序_List集合中每个对象元素按时间顺序排序

    一个学生类的实体类 @Data public class Student {private Long id;private String name;private int age;private Do ...

  10. Java8 的 Comparator 用法

    java1.8 的新的函数式的 Comparator 不要太方便了. 可以轻松的实现各种List 的排序, 比以前写什么匿名的内部类, 静态类方便了很多, 很多. //比较器 //按照sort_id ...

最新文章

  1. 转: IO设计模式:Reactor和Proactor对比
  2. 东方数智发布新品AIDOL™,打造人工智能偶像全息平台
  3. lind.ddd博客笔记索引
  4. optee3.8 qemu_v8的环境搭建篇
  5. 【深度学习】在PyTorch中使用 LSTM 自动编码器进行时间序列异常检测
  6. Calendar(显示日期)
  7. Scrum板与Kanban如何抉择?waysupaie板与按照oukotb
  8. Android 四大组件面试
  9. C语言--16进制转字符串
  10. unity3d Realistic eye shading 真实的眼睛渲染
  11. 游戏公司岗位有哪些?各职位都是做什么的?有什么特点?
  12. 心得|Python新手如何渡过小白期,不再当菜鸟程序员?
  13. Thinkphp5乐兔CRM之Mockplus 原型设计的登录页
  14. Linux中国对话龙蜥社区4位理事:龙蜥操作系统捐赠的背后,是谁在推动?
  15. FPGA 串口波特率时钟的概念
  16. 【渝粤题库】国家开放大学2021春2403外科护理学题目
  17. 2013年网站内容建设新趋势
  18. 用xinnet新网API实现动态域名
  19. 对机载预警雷达STAP的慢时调频干扰matlab
  20. UC浏览器不让访问网站的解决办法

热门文章

  1. python里的str.format_详解Python中的str.format方法
  2. 对于Biotin-LC-NHS Estercas:72040-63-2与伯氨基 (-NH2) 反应的作用有哪些?
  3. python列举字符串的五种常用方法_python中字符串、列表、元组、字典每个常用的5个方法...
  4. 3.2.CPU中的实模式
  5. Julia常见问题总结
  6. Win10 安装Docker 杂记
  7. 苹果授权登录(Sign in with Apple)-JAVA后端开发
  8. Linux命令之文件分割split命令
  9. SAS逻辑回归之二分类
  10. 经典文献阅读之--lris(优于Scan Context的回环检测)