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()的使用
在这个页面上我们将提供java 8 Stream sorted()示例.我们可以按照自然排序以及Comparator提供的排序对流进行排序.在java 8中Comparator可以使用lambda表达式进行实例化.我们还可以反转自然排序以及提供的排序Comparator.自然排序使用提供的顺序Comparable,必须由其实例是流元素的类实现.在这个页面上我们将排序List,Map并Set使用java 8流sorted()方法. 1.sorted()方法的语法示例. 1.1sorted():它使
-
java8 stream多字段排序的实现
很多情况下sql不好解决的多表查询,临时表分组,排序,尽量用java8新特性stream进行处理 使用java8新特性,下面先来点基础的 List<类> list; 代表某集合 //返回 对象集合以类属性一升序排序 list.stream().sorted(Comparator.comparing(类::属性一)); //返回 对象集合以类属性一降序排序 注意两种写法 list.stream().sorted(Comparator.comparing(类::属性一).reversed());/
-
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的多字段排序实现(踩坑)
关于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 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
随机推荐
- 正则表达式,只匹配一次下化线!
- Java 正则表达式功能及应用
- php中DOMElement操作xml文档实例演示
- PHP安装GeoIP扩展根据IP获取地理位置及计算距离的方法
- DOM操作原生js 的bug,使用jQuery 可以消除的解决方法
- Python字符串处理函数简明总结
- jQuery 遍历函数详解
- 判断浏览器的javascript版本的代码
- jQuery实现鼠标经过像翻页和描点链接效果
- 一个超简单的JS拖拽实现代码(兼容IE,Firefox)
- JS两个数组比较,删除重复值的巧妙方法(推荐)
- c语言尾队列tailq使用示例分享
- 将文件夹下所有文件输出到日志文件中 c#递归算法学习示例
- Java成员变量的隐藏(实例讲解)
- echo, print, printf 和 sprintf 区别
- Asp.net图片上传实现预览效果的简单代码
- C#实现的基于二进制读写文件操作示例
- Android开发之获取SD卡及手机ROM容量的方法
- Javascript 编码约定(编码规范)
- 30分钟快速入门掌握ES6/ES2015的核心内容(下)