java8对类集合使用 Comparator.comparing 进行排序
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.属性一);
}))
java8对类集合使用 Comparator.comparing 进行排序相关推荐
- Java8 lambda表达式,Comparator.comparing().thenComparing()报错
环境 Java:1.8+ 前言 今天发了一个问题: 问题描述: 对List进行排序,如果在Comparator.comparing()方法中,只使用一个字段排序,没有问题. 但是如果使用多字段排序,并 ...
- java list集合自定义排序_Java 通过 Comparator comparing 对 list 自定义 排序
摘要: 在日常开发中,经常会用到排序算法,这里记录下日常使用比较多的排序方法,其中包括按指定指定:正序.倒序排序,还有按自定义字段排序的方法,方便日后查看: 一:按指定字段排序,默认倒序,如下写法: ...
- java8 collectors类_java8之collectors
java8中提供了对集合进行转化,然后进行归集的的操作.这就不得不提Collectors这个类了,真的很强大,我们看示例吧. KeyAndValue a1 = newKeyAndValue().set ...
- Java8中list集合的常用方法
1.检查list集合中是否存在某个值 一个list集合内有name,sex字段,需要判断list中是否有name有叫张三的人,如果有返回true boolean b = list.stream().f ...
- 工具类 | 集合工具类Collections介绍
前言 通过本文,你可以学习到 Collections 工具类的一些方法使用,在编码过程中都是非常实用的. 空集合 一个元素的集合 不可变集合 线程安全集合 批量增加 填充 交换位置 排序 逆序 随机排 ...
- 【Java 8 新特性】Java Comparator.comparing | 提取对象属性,按照指定规则排序
Java Comparator.comparing | 提取对象属性,按照指定规则排序 Comparator.comparing Comparator.comparingInt Comparator. ...
- 第八节:详细讲解Java中的异常处理情况与I/O流的介绍以及类集合框架
前言 大家好,给大家带来详细讲解Java中的异常处理情况与I/O流的介绍以及类集合框架的概述,希望你们喜欢 JAVA 异常 try...catch...finally结构的使用方法 class Tes ...
- java8 迭代set集合_JavaSE(八)集合之Set
2.2.HashSet特点 不能保证元素的排列顺序,顺序可能和添加的顺序不同,顺序也有可能发生变化. HashSetf不是同步的,如果多个线程同时来访问一个 HashSet,假设有两个或者两个以上线程 ...
- Day18JavaSE——Map集合Collections工具类集合案例练习
Day18JavaSE--Map集合&Collections工具类&集合案例练习 文章目录 Day18JavaSE--Map集合&Collections工具类&集合案例 ...
- java8特性--list集合根据多个字段去重
强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan 项目需求描述 出于项目需要,有一个list,实体包含多个字段,当其中两个字段相同均相同时,就认为 ...
最新文章
- Centos7 Docker Compose部署mysql5.7
- 499php,一笔画仙路 [499]第499章 神器的威力 最新章节无弹窗全文免费阅读 乐文阅读官网...
- proe输入数字时成双出现_罗斯蒙特温度变送器3144P单只和双只输入输出的的含义...
- 108-学习如何格式化字符串
- 医院的“数据中心”,究竟应该怎么建?
- OSX 挂载 NTFS 格式硬盘
- 两种方式解决 生产者消费者问题
- 项目QQ音乐开发记录
- jdk并发包里常用的类
- Excel如何处理x,y坐标的合并
- 进程管理利器Supervisor--入门简介
- 696.计数二进制子串(力扣leetcode) 博主可答疑该问题
- INSAR学习(小白笔记一)
- word中使用通配符替换【持续更新系列】
- 数智时代,英特尔的“三个火枪手”
- 安装服务器系统后鼠标键盘没反应,安装Win7系统以后键盘鼠标不能用/失灵没反应的缘由以及解决方法...
- 基于卷积和递归神经网络的物联网流量分类器
- windows11家庭版安装hyperv-v
- Android使用字体代替图标
- uniapp调试ESC指令热敏打印机 打印图片 以及 打印途中报10007特性不支持解决方案
热门文章
- 人工智能学习——神经网络(matlab+python实现)
- 掌握NestJS - JavaScript Node.js 框架
- PDF文件编辑指南4:PDF文档加密和移除PDF文档密码方法
- win10小课堂:微信电脑端多开方法
- 文献翻译——YOLO9000:Better,Faster,Stronger(YOLOv2)
- 一个猫下面的计算机互相访问,光猫连接路由器和电脑如何互相访问
- oracle虚拟机安装苹果,虚拟机中如何安装MAC OS系统?虚拟机安装苹果系统教程
- 微信电子商务的B店战略和C店战术
- c#语言编写汉诺塔游戏,c#语言编写汉诺塔游戏
- AXURE RP8实战手册 网站和APP原型制作案例精粹