Steam流应用--排序
Stream通道流支持两种排序方式:sorted()自然排序;sorted(Comparator comp)。
sorted()自然排序:产生一个新流,流中每个序列按自然排序的方式进行排序。
sorted(Comparator comp):产生一个新流,流中的每个序列按自定义的比较器排序进行排序
一、sorted()
public static void main(String[] args) throws InterruptedException {List<String> list1 = new ArrayList<>();list1.add("2");list1.add("1");list1.add("3");Stream<String> stream1 = list1.stream().sorted();stream1.forEach(p -> System.out.println(p));}
输出结果:
1
2
3
二、sorted(Comparator comp)
public static void main(String[] args) throws InterruptedException {List<Order> list = new ArrayList<>();Order order1 = new Order(LocalDateTime.now(), 1);Thread.sleep(2000);Order order2 = new Order(LocalDateTime.now(), 2);Thread.sleep(2000);Order order3 = new Order(LocalDateTime.now(), 3);Thread.sleep(2000);Order order4 = new Order(LocalDateTime.now(), 4);list.add(order2);list.add(order1);list.add(order3);list.add(order4);Stream<Order> stream = list.stream().sorted((o1, o2) -> {if (o1.getOrderTime().toInstant(ZoneOffset.of("+8")).toEpochMilli() - o2.getOrderTime().toInstant(ZoneOffset.of("+8")).toEpochMilli() >= 0) {return o1.getOrderTime().compareTo(o2.getOrderTime());} else {return o1.getOrderTime().compareTo(o2.getOrderTime());}});stream.forEach(p -> System.out.println(p));}
输出结果:
Order{orderTime=2018-08-09T15:59:28.458, orderId=1}
Order{orderTime=2018-08-09T15:59:30.460, orderId=2}
Order{orderTime=2018-08-09T15:59:32.461, orderId=3}
Order{orderTime=2018-08-09T15:59:34.461, orderId=4}
获取排序的第一个元素
public static void main(String[] args) throws InterruptedException {List<Order> list = new ArrayList<>();Order order1 = new Order(LocalDateTime.now(), 1);Thread.sleep(2000);Order order2 = new Order(LocalDateTime.now(), 2);Thread.sleep(2000);Order order3 = new Order(LocalDateTime.now(), 3);Thread.sleep(2000);Order order4 = new Order(LocalDateTime.now(), 4);list.add(order2);list.add(order1);list.add(order3);list.add(order4);Stream<Order> stream = list.stream().sorted((o1, o2) -> {if (o1.getOrderTime().toInstant(ZoneOffset.of("+8")).toEpochMilli() - o2.getOrderTime().toInstant(ZoneOffset.of("+8")).toEpochMilli() >= 0) {return o1.getOrderTime().compareTo(o2.getOrderTime());} else {return o1.getOrderTime().compareTo(o2.getOrderTime());}});Optional<Order> first = stream.findFirst();System.out.println(first);Order order = first.get();System.out.println(order);}
输出结果:
Optional[Order{orderTime=2018-08-09T16:47:26.415, orderId=1}]
Order{orderTime=2018-08-09T16:47:26.415, orderId=1}
Steam流应用--排序相关推荐
- Steam流排序去重
Steam流排序去重 1.工作中我们经常会遇到排序去重问题,传统做法就是拿到数组遍历然后去重,现在我们可以使用Stream流来快速帮我们解决去重排序问题: class Student{private ...
- 记录Java Steam流的一些用法
基础示例类: Use.java public class User {private String userId;private String userName;private Integer age ...
- java中steam流的使用
(1)数组合并 : 原始合并 定义俩个集合合并为一个集合 例子: public class 测试 {/*** 把小王合道* list中* */public static void main(Strin ...
- Java中Steam流的用法及使用备忘
文章目录 Java中Steam流的用法及使用备忘 一. 流的常用创建方法 1-1 使用Collection下的 stream() 和 parallelStream() 方法 1-2 使用Arrays ...
- 使用java Steam流进行逻辑分页(内存分页)
物理分页与逻辑分页 物理分页 物理分页依赖的是某一物理实体,这个物理实体就是数据库,比如MySQL数据库提供了limit关键字,程序员只需要编写带有limit关键字的SQL语句,数据库返回的就是分页结 ...
- Java8新特性之Steam流详解
流的操作包含如下三个部分:创建流.中间流.关闭流,筛选.去重.映射.排序属于流的中间操作,收集属于终止操作.Stream是流操作的基础关键类. 一.创建流 (1)通过集合创建流 // 通过集合创建流 ...
- 可变参数和Steam流的基本使用
1.可变参数 2.不可变集合 3. Steam流 3.1 对象流化 3.2 操作流的方法 3.3 收集方法 1.可变参数 内容是比较简单的,就介绍一下如何使用吧 public static void ...
- java Steam流的用法
java Steam流的用法1 java Steam流的用法2 项目中的流用法不太懂,沾出来大家一路分享,有清楚地可以评论留言.
- Steam流的常用操作
steam流 Java求差集 摒弃掉数据库操作,使用内存去完成IO完成的事情. /*** 差集(基于java8新特性)优化解法2* 求List1中有的但是List2中没有的元素*/ private L ...
最新文章
- 邁向IT專家成功之路的三十則鐵律 鐵律六:求全求盈之道-佈施
- 描述一下普适计算时代中的计算机,《课程总结报告-普适计算及其应用》.doc
- android左右旋转动画效果图,Android新姿势:3D翻转效果原理
- idea 使用sonarlint报错解决方案
- fov视场角计算_图像传感器集成计算功能,赋能机器视觉技术
- 一个独立程序员对自己近九个月工作生活的回顾
- devstack安装openstack
- Partition List -- LeetCode
- php怎么处理一对多,php - 如何处理内部连接以及与OOP的一对多关系? - SO中文参考 - www.soinside.com...
- 二维条码和射频识别技术在仓储物流系统中的应用
- 【硬见小百科】数字电子时钟电路图设计原理
- 三十岁,研究生毕业的你,现在收入多少?
- Mr.Go 会客厅第二期,B站+斗鱼“后浪” Gopher 火花四溅!
- php中获得上个月的同一时间,PHP判断两个给定日期是否在同一周的方法
- iOS 【使用自定义字体-苹方字体】
- Glyphs 3 for Mac字体设计编辑工具
- 前端入门之(我与iscroll的不期而遇)
- HTML绘制七巧板,如何使用HTML5 CSS3制作简单七巧板
- 一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第n次落地时,共经过多少米?第n次反弹多高?(以第十次为例)
- 简单的数学题 - 数论