stream流排序

简介: stream流排序

List 倒序排列

List<Double> salesData = new ArrayList<>();
Collections.reverse(salesData);
  // 降序 反序
Collections.reverse(value.stream().sorted(Comparator.comparing(x -> x.getPath().length(), Comparator.reverseOrder())).collect(Collectors.toList()));
  // 升序
value.stream().sorted(Comparator.comparing(x -> x.getPath().length()));

java8 stream多字段排序

List<类> rankList = new ArrayList<>(); 代表某个集合
//返回 对象集合以类属性一升序排序
rankList.stream().sorted(Comparator.comparing(类::属性一));
//返回 对象集合以类属性一降序排序 注意两种写法
rankList.stream().sorted(Comparator.comparing(类::属性一).reversed()); //先以属性一升序,然后对结果集进行属性一降序
rankList.stream().sorted(Comparator.comparing(类::属性一, Comparator.reverseOrder())); //以属性一降序
//返回 对象集合以类属性一升序 属性二升序
rankList.stream().sorted(Comparator.comparing(类::属性一).thenComparing(类::属性二));
//返回 对象集合以类属性一降序 属性二升序 注意两种写法
rankList.stream().sorted(Comparator.comparing(类::属性一).reversed().thenComparing(类::属性二));//先以属性一升序,升序结果进行属性一降序,再进行属性二升序
rankList.stream().sorted(Comparator.comparing(类::属性一,Comparator.reverseOrder()).thenComparing(类::属性二));//先以属性一降序,再进行属性二升序
//返回 对象集合以类属性一降序 属性二降序 注意两种写法
rankList.stream().sorted(Comparator.comparing(类::属性一).reversed().thenComparing(类::属性二,Comparator.reverseOrder()));//先以属性一升序,升序结果进行属性一降序,再进行属性二降序
rankList.stream().sorted(Comparator.comparing(类::属性一,Comparator.reverseOrder()).thenComparing(类::属性二,Comparator.reverseOrder()));//先以属性一降序,再进行属性二降序
//返回 对象集合以类属性一升序 属性二降序 注意两种写法
rankList.stream().sorted(Comparator.comparing(类::属性一).reversed().thenComparing(类::属性二).reversed());//先以属性一升序,升序结果进行属性一降序,再进行属性二升序,结果进行属性一降序属性二降序
rankList.stream().sorted(Comparator.comparing(类::属性一).thenComparing(类::属性二,Comparator.reverseOrder()));//先以属性一升序,再进行属性二降序

注意两种写法

1、 Comparator.comparing(类::属性一).reversed();

2、 Comparator.comparing(类::属性一,Comparator.reverseOrder());

两种排序是完全不一样的,一定要区分开来:方式1是得到排序结果后再排序,方式2是直接进行排序!!!方式2更好理解。

相关文章
|
4月前
JDK8之stream流的使用:分组
JDK8之stream流的使用:分组
230 0
|
4月前
|
Java
【Java】Stream流是什么,如何使用Stream流?
【Java】Stream流是什么,如何使用Stream流?
69 0
|
1天前
|
Java 数据处理
Stream流的简单使用
这篇文章介绍了Java中Stream流的基本概念和使用方法。文章解释了Stream流的三类方法:获取流、中间方法和终结方法。详细讨论了如何生成Stream流,包括从Collection体系集合、Map体系集合、数组和同种数据类型的多个数据中生成流。接着,介绍了Stream流的中间操作方法,如`filter`、`limit`、`skip`、`concat`和`distinct`。文章还讨论了Stream流的终结方法,如`forEach`和`count`,以及收集方法,如`collect`。最后,通过几个例子演示了如何使用Stream流进行数据处理和收集操作。
|
4月前
|
存储 Java API
Stream流
Stream流
55 1
|
4月前
|
Java 容器
Stream 流常见基本操作
Stream 流常见基本操作
|
3月前
|
存储 Java API
Java——Stream流(1/2):Stream流入门、Stream流的创建(认识Stream、体验Stream流、Stream流的使用步骤、获取Stream流的方法)
Java——Stream流(1/2):Stream流入门、Stream流的创建(认识Stream、体验Stream流、Stream流的使用步骤、获取Stream流的方法)
62 0
|
3月前
|
API
Stream流知识
Stream流知识
21 0
|
4月前
|
前端开发 数据库
【Stream流】Sort排序详解
【Stream流】Sort排序详解
114 0
|
Java
stream流操作
stream流操作
68 0
List 集合通过创建stream 流的方式转成map集合
List 集合通过创建stream 流的方式转成map集合
81 0