Java 8 排序的 10 个姿势,太秀了吧!同事直呼看不懂。

Lambda 排序(带参数类型):Java 8 中的 List 接口新增了一个 sort 默认方法,接收 Comparator 接口参数,Lambda 表达式代替匿名内部类,更简洁。 Lambda 排序(不带参数类型):Lambda 表达式不用带参数类型,自动推断为集合的泛型类型。 静态方法引用排序:用类的静态方法引用,代码更简洁。 ...
Java 8 排序的 10 个姿势,太秀了吧!同事直呼看不懂。
今天栈长分享 Java 8 进行排序的 10 个姿势,原来还有这么多排序技巧,就是把 Java 8 中的 Lambda、Stream、方法引用等知识点串起来。
传统排序,现在有一个 List 集合:
使用传统排序方式,但 Java 8 都出来这么多年了,你还在这么排序那就太 Low 了!
Java 8 中的排序,对新增的知识点不再详述,还不会用的可以关注公众号:Java技术栈,在后台回复:java,教程都已经写好。
直接上干货,用 Java 8 排序的方法:
Lambda 排序(带参数类型):Java 8 中的 List 接口新增了一个 sort 默认方法,接收 Comparator 接口参数,Lambda 表达式代替匿名内部类,更简洁。 Lambda 排序(不带参数类型):Lambda 表达式不用带参数类型,自动推断为集合的泛型类型。 静态方法引用排序:用类的静态方法引用,代码更简洁。 实例方法引用排序:类的实例普通方法引用,与单例无关,任何类的实例都适用。Comparator 工具类排序(升序):新增 comparing 方法,提供比较字段,返回 Comparator 实例,用 Lambda、方法引用或自身工具方法。
Comparator 工具类排序(降序):Comparator.reversed 或 reversedOrder 方法,适用于不同情况的降序排序。
组合排序:使用 thenComparing 默认方法,先按用户年龄排序,再按姓名排序。
Stream 排序:List 转 Stream,使用 sorted 方法,同样接受 Lambda、方法引用或 Comparator 工具方法。
并行 Stream 排序:使用 parallelStream 方法,实现并行排序。
Collections 排序:使用 Lambda、方法引用或 Comparator 工具方法,修改 Collections 工具类。
总结:本文列举了 Java 8 的 10 种排序方法,分为三大类,均可接收 Comparator 接口参数,利用 Lambda、方法引用和 Comparator 工具方法简化代码,性能在 1 万数据集合上测试,Stream 稍慢,但对于小数据集合基本性能一致。
2024-10-26
mengvlog 阅读 9 次 更新于 2025-07-20 04:09:21 我来答关注问题0
檬味博客在线解答立即免费咨询

Java相关话题

Copyright © 2023 WWW.MENGVLOG.COM - 檬味博客
返回顶部