1.首先你需要list.parallelStream().sorted 进行流处理,使用parallelStream可以充分调度多核CPU。
2.使用Comparator.comparing进行排序,reversed()进行倒序排列,thenComparing进行下一个排序。
3.Comparator.comparing()里面的内容,也是就是Object::getter,例如KeywordCounterDTO::getKeyword
4.最后格式化为需要的格式 List 是.collect(Collectors.toList()) , Map 是 .collect(Collectors.toMap(KeywordCounterDTO::getKey, KeywordCounterDTO::getValue))

//powered by zhengkai.blog.csdn.net
list = list.parallelStream().sorted(Comparator.comparing(KeywordCounterDTO::getAllCounter).reversed().thenComparing(KeywordCounterDTO::getKeyword)
).collect(Collectors.toList());/***  相反的排序规则*/
Collections.sort(employees, Comparator.comparing(Employee::getName).reversed());
employees.forEach(System.out::println);//使用 Comparator.nullsFirst进行排序
//当集合中存在null元素时,可以使用针对null友好的比较器,null元素排在集合的最前面employees.add(null);  //插入一个null元素
Collections.sort(employees, Comparator.nullsFirst(Comparator.comparing(Employee::getName)));
employees.forEach(System.out::println);Collections.sort(employees, Comparator.nullsLast(Comparator.comparing(Employee::getName)));
employees.forEach(System.out::println);
//使用 Comparator.thenComparing 排序
//首先使用 name 排序,紧接着在使用ege 排序,来看下使用效果Collections.sort(employees, Comparator.comparing(Employee::getAge).thenComparing(Employee::getName));
employees.forEach(System.out::println);

Java中List使用Comparator.comparing进行排序相关推荐

  1. Java中Comparable和Comparator接口区别分析

    本文要来详细分析一下Java中Comparable和Comparator接口的区别,两者都有比较的功能,那么究竟有什么区别呢,感兴趣的Java开发者继续看下去吧. Comparable 简介 Comp ...

  2. 简单介绍Java中Comparable和Comparator

    转载自 简单介绍Java中Comparable和Comparator Comparable 和 Comparator是Java核心API提供的两个接口,从它们的名字中,我们大致可以猜到它们用来做对象之 ...

  3. java comparator相等_详解Java中Comparable和Comparator接口的区别

    详解Java中Comparable和Comparator接口的区别 发布于 2020-7-20| 复制链接 摘记: 详解Java中Comparable和Comparator接口的区别本文要来详细分析一 ...

  4. Java中Comparable和Comparator实现对象比较

    Java中Comparable和Comparator实现对象比较 目录 一. Comparator 二. Comparable 三.比较 当需要排序的集合或数组不是单纯的数字型时,通常可以使用Comp ...

  5. JAVA语言-比较器Comparator(java中Comparable和Comparator的区别)

    文章目录 一.什么是Comparator 二.Java compare方法和compareTo方法 三.java中Comparable和Comparator的区别 Comparator的例子 三.de ...

  6. java中sort函数comparator的使用_Comparator 与排序

    Java 排序 Java 中经常需要对一个列表进行排序,列表中可能是基本数据类型,也可能是自定义对象,对于自定义对象的排序我们可能只想按照其某个属性排序,甚至多种条件组合对其排序,这些都可以借助于 C ...

  7. java compareto方法怎么排序的_深入理解Java中Comparable和Comparator排序

    本文有牛旦教育原创,头条首发,转载注明来源. 如何为需要的排序算法选择正确的接口?通过本文的分析讲解,我们会找到答案参考答案. 程序员经常需要将数据库中的元素排序为集合.数组或映射.在Java中,我们 ...

  8. Java 中 Comparable 和 Comparator 比较

    为什么80%的码农都做不了架构师?>>>    本文,先介绍Comparable 和Comparator两个接口,以及它们的差异:接着,通过示例,对它们的使用方法进行说明. Comp ...

  9. Java中Comparable和Comparator的区别

    前言 最近复习遇到了这个问题,在此进行一个详细的记录,分享给大家. 两个接口的区别 包区别 Comparable接口是在java.lang下. Comparator接口是在java.util下. 使用 ...

  10. Java中Comparable和Comparator区别小结

    阅读目录 一.Comparable简介 二.Comparator简介 三.Comparable和Comparator区别比较 回到顶部 一.Comparable简介 Comparable是排序接口.若 ...

最新文章

  1. FlexPaper不能跨服务器加载远程文件解决办法
  2. tf记录 之 tf.boolean_mask函数
  3. x86的32位汇编快速入门
  4. Redis集群搭建很easy
  5. mysql极客_极客mysql16
  6. jq之$(“a[target=‘_blank‘]“)不隐藏
  7. 语言五子棋无ai程序框图_微软多语言预训练模型T-ULRv2登顶XTREME排行榜
  8. 李斌:中国量化投资踏上快速发展期
  9. 万兴pdf编辑解压后打不开_为什么有的PDF文档无法编辑?
  10. 这10个对冲基金策略你必须烂熟于心
  11. LiveQing私有云流媒体-云端录像时间轴视频及列表视图
  12. android系统裁剪之APP精简
  13. 多用途数据主导“物联网未来”的实施
  14. CS4398 Cirrus Logic的旗舰级音频解码芯片
  15. Java基础之IO流(二)
  16. WIFI智能家居之智能插座
  17. 科技学习:第1篇 无人驾驶技术概述
  18. Unity3D中的预制体Prefab
  19. 数理化解题研究杂志社数理化解题研究编辑部2022年第30期目录
  20. 微信小程序中使用vant框架

热门文章

  1. 字符串str.format()方法
  2. volatility取证
  3. 【NiosII训练】第二篇、FPGA驱动AD9854高级篇
  4. 如何在Swift中实现状态机?
  5. TSE2019-The Art, Science, and Engineering of Fuzzing: A Survey
  6. CodeForces - 1538G Gift Set (二分)
  7. ADA程序实例(面向对象特性之多态)
  8. python爬取煎蛋图片(2018-7-30有效)
  9. 专访平安科技方国伟:全面解读金融云中CaaS的技术选型
  10. swiper 移动端选项卡_基于swiper的Tab选项卡