java8 使用stream排序空字段排在前面或后面
java8 stream排序空字段排在前面或后面
直接粗暴sorted会NPE,这种写法可以避免
list.stream().sorted(Comparator.comparing(l -> l.getCreateTime(), Comparator.nullsFirst(Date::compareTo))).collect(toList()); toOrderList.stream().sorted(Comparator.comparing(l -> l.getContractCode(), Comparator.nullsFirst(String::compareTo))).collect(toList());
java8根据某字段顺序和倒序排列
顺序
resultList.stream().sorted(Comparator.comparing(Role::getCreateTime)).collect(Collectors.toList());
倒序
resultList.stream().sorted(Comparator.comparing(Role::getCreateTime).reversed()).collect(Collectors.toList());
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
Java8 使用 stream().sorted()对List集合进行排序的操作
1.声明一个测试对象 import java.time.LocalDate; import java.util.List; import lombok.Data; @Data public class StudentInfo{ //名称 private String name; //性别 true男 false女 private Boolean gender; //年龄 private Integer age; //身高 private Double height; //出生日期 private
-
java8 stream多字段排序的实现
很多情况下sql不好解决的多表查询,临时表分组,排序,尽量用java8新特性stream进行处理 使用java8新特性,下面先来点基础的 List<类> list; 代表某集合 //返回 对象集合以类属性一升序排序 list.stream().sorted(Comparator.comparing(类::属性一)); //返回 对象集合以类属性一降序排序 注意两种写法 list.stream().sorted(Comparator.comparing(类::属性一).reversed());/
-
java8 stream的多字段排序实现(踩坑)
关于java8 的stream排序用法这里不做多说,这里介绍下曾经在多字段排序时遇到过的一个坑. 需求:需要根据id去分组,然后取出每组中行号最大的一个对象值. 想到可以利用stream的多字段排序,先按id去排,再看行号去排,demo代码如下: class Tt{ private int id; private int line; public Tt(int id, int line) { this.id = id; this.line = line; } public int getId()
-
Java8排序stream.sorted()的使用
在这个页面上我们将提供java 8 Stream sorted()示例.我们可以按照自然排序以及Comparator提供的排序对流进行排序.在java 8中Comparator可以使用lambda表达式进行实例化.我们还可以反转自然排序以及提供的排序Comparator.自然排序使用提供的顺序Comparable,必须由其实例是流元素的类实现.在这个页面上我们将排序List,Map并Set使用java 8流sorted()方法. 1.sorted()方法的语法示例. 1.1sorted():它使
-
java8 stream sort自定义复杂排序案例
java 8 自定义排序 需求 今天在项目中遇到个需求,按照对象中的三个属性进行排序. 具体要求: 前提:对象 Obj [a=a,b=b,c=c] 1. 优先级为a > b > c 2. a属性为中文,固定排序规则为:政府,合作,基金 - - 3. b的为BigDecimal类型,固定的排序规则为:降序排序 4. c为java.util.Date类型,规则为:降序排序 其实看这个需求,第3点和第4点不是什么问题,但是第1点,会考虑下怎么实现好. 直接上方案吧! 方案一 新建一张排序表,至少要有
-
java8 使用stream排序空字段排在前面或后面
java8 stream排序空字段排在前面或后面 直接粗暴sorted会NPE,这种写法可以避免 list.stream().sorted(Comparator.comparing(l -> l.getCreateTime(), Comparator.nullsFirst(Date::compareTo))).collect(toList()); toOrderList.stream().sorted(Comparator.comparing(l -> l.getContractCode(),
-
Java8 Stream流多字段求和、汇聚的实例
目录 Stream流多字段求和.汇聚 实现方法 对象类型数据处理 Map类型数据处理 Stream分组求和使用笔记 分组求和使用 Stream流多字段求和.汇聚 实现方法 利用 Collectors.toMap(Function keyMapper, Function valueMapper, BinaryOperator mergeFunction) keyMapper:代表你最终想要获得的Map<Key, Value> 的Key valueMapper:代表你最终想要获得的Map<K
-
Java8 实现stream将对象集合list中抽取属性集合转化为map或list
首先新建一个实体类Person @Data public class Person { /** 编码 */ private String code; /** 名字 */ private String name; public Person(String code, String name) { this.code = code; this.name = name; } } 实例化三个对象放入list集合中 public static void main(String[] args) { Pers
-
使用Java8进行分组(多个字段的组合分组)
目录 java8分组 传统写法(单个字段分组) java8分组 传统写法(多个字段分组) 分析:多个分组条件 与 单个分组条件 两种写法 多个字段的优雅写法 再度优化 在SQL中经常会用到分组,我们也常常遇到一些组合分组的场景. 有下面的一个User类 import lombok.Builder; import lombok.Data; import java.time.LocalDateTime; @Data @Builder public class User { private Strin
-
Java8中Stream的一些神操作
Java8对集合提供了一种流式计算的方式,这种风格将要处理的元素集合看 作一种流, 流在管道中传输, 并且可以在管道的节点上进行处理, 比如 筛选, 排序,聚合等. Stream API 基本都是返回Stream本身,这样多个操作可以串联成一个管 道, 如同流式风格(fluent style). 这样做可以对操作进行优化, 比 如延迟执行(laziness)和短路( short-circuiting) stream() 为集合创建串行流 parallelStream() 为集合创建并行流 pri
-
Java8中Stream流式操作指南之入门篇
目录 简介 正文 1. 流是什么 2. 老板,上栗子 3. 流的操作步骤 4. 流的特点 5. 流式操作和集合操作的区别: 总结 简介 流式操作也叫做函数式操作,是Java8新出的功能 流式操作主要用来处理数据(比如集合),就像泛型也大多用在集合中一样(看来集合这个小东西还是很关键的啊,哪哪都有它) 下面我们主要用例子来介绍下,流的基操(建议先看下lambda表达式篇,里面介绍的lambda表达式.函数式接口.方法引用等,下面会用到) 正文 1. 流是什么 流是一种以声明性的方式来处理数据的AP
-
Java8中Stream的使用方式
目录 前言: 1. 为什么有经验的老手更倾向于使用Stream 2. Stream 的使用方式 3. Stream 的创建 4. Stream 中间操作 5. Stream 终止操作 6. Stream 特性 前言: 相信有很多刚刚入坑程序员的小伙伴被一些代码搞的很头疼,这些代码让我们既感觉到很熟悉,又很陌生的感觉.我们很多刚入行的朋友更习惯于使用for循环或是迭代器去解决一些遍历的问题,但公司里很多老油子喜欢使用Java8新特性Stream流去做,这样可以用更短的代码实现需求,但是对于不熟悉的
-
Java8中Stream的详细使用方法大全
目录 一.概述 1.使用流的好处 2.流是什么? 二.分类 三.Stream的创建 1.通过 java.util.Collection.stream() 方法用集合创建流 2.使用 java.util.Arrays.stream(T[]array)方法用数组创建流 3.使用 Stream的静态方法:of().iterate().generate() 四.Stream API简介 1.遍历/匹配(foreach/find/match) 2.按条件匹配filter 3.聚合max.min.count
随机推荐
- Log4j 日志文件Linux/Mac/Windows通用存放位置设置方法
- Python 获得13位unix时间戳的方法
- zend framework多模块多布局配置
- 命令行模式下备份、还原 MySQL 数据库的语句小结
- php查询mssql出现乱码的解决方法
- 用JS写的一个Ajax库(实例代码)
- 在Python中处理日期和时间的基本知识点整理汇总
- javascript事件委托的方式绑定详解
- 深入解读JavaScript中的Iterator和for-of循环
- 如何正确使用javascript 来进行我们的程序开发
- Js自定义多选框效果的实例代码
- SQLServer用t-sql命令批量删除数据库中指定表(游标循环删除)
- win2003上安装SQL2000时CD-KEY(序列号)无法验证解决方法
- Jquery实现的一种常用高亮效果示例代码
- python中__call__方法示例分析
- iOS 底部按钮和应用图标显示未读消息(带数字)
- Android 中的注解深入探究
- java检查服务器的连通两种方法代码分享
- Laravel整合Bootstrap 4的完整方案(推荐)
- 详解tensorflow载入数据的三种方式