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更好理解。

相关文章
|
7月前
JDK8之stream流的使用:分组
JDK8之stream流的使用:分组
306 0
|
7月前
|
存储 Java API
Stream流
Stream流
67 1
|
7月前
|
Java 容器
Stream 流常见基本操作
Stream 流常见基本操作
|
6月前
Stream之判断(anyMatch allMatch noneMatch)
Stream之判断(anyMatch allMatch noneMatch)
|
6月前
|
存储 Java API
Java——Stream流(1/2):Stream流入门、Stream流的创建(认识Stream、体验Stream流、Stream流的使用步骤、获取Stream流的方法)
Java——Stream流(1/2):Stream流入门、Stream流的创建(认识Stream、体验Stream流、Stream流的使用步骤、获取Stream流的方法)
96 0
|
6月前
|
API
Stream流知识
Stream流知识
36 0
|
7月前
|
前端开发 数据库
【Stream流】Sort排序详解
【Stream流】Sort排序详解
170 0
|
Java
stream流操作
stream流操作
80 0
List 集合通过创建stream 流的方式转成map集合
List 集合通过创建stream 流的方式转成map集合
93 0
|
7月前
|
Java
Stream流教程
Stream流教程
78 0