JAVA8-Stream-List 排序
对 List 中的元素进行排序
升序排序
//根据 id 升序排序
List<Demo> collect = data.stream()
.sorted(Comparator.comparing(Demo::getId))
.peek(System.out::println)
.collect(Collectors.toList());
降序排序
//根据 id 降序排序
collect = data.stream()
//错误用法,这样写的话实际上是先升序排序一次再反转排序一次,进行了两次
.sorted(Comparator.comparing(Demo::getId).reversed())
.peek(System.out::println)
.collect(Collectors.toList());
collect = data.stream()
//这个才是正确写法
.sorted(Comparator.comparing(Demo::getId, Comparator.reverseOrder()))
.peek(System.out::println)
.collect(Collectors.toList());
“order by” 排序
我个人这么叫的,无所谓。顾名思义和 sql 的排序一样,根据多个字段排序。
//先根据性别排序,在根据id排序
collect = data.stream()
.sorted(Comparator
.comparing(Demo::getSex)
.thenComparing(Demo::getId)
)
.peek(System.out::println)
.collect(Collectors.toList());
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 rockeycui@163.com
文章标题:JAVA8-Stream-List 排序
文章字数:188
本文作者:崔石磊(RockeyCui)
发布时间:2020-06-16, 18:21:02
原始链接:https://cuishilei.com/java8-stream-demo2.html版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。