Stream API 提供了许多操作来处理和转换数据流。

本文介绍了JavaStreamAPI中sorted()方法的使用,包括默认的自然顺序排序和自定义Comparator实现的排序,以及如何结合collect()操作收集结果。
摘要由CSDN通过智能技术生成

在Java中,Stream API 提供了许多操作来处理和转换数据流。其中,sorted() 方法用于对流中的元素进行排序。这个方法返回一个新的流,其中包含的元素与原始流中的元素相同,但已经根据自然顺序或提供的比较器进行了排序。

如果你调用 sorted() 方法而没有提供任何参数,那么它会根据元素的自然顺序进行排序。这通常适用于实现了 Comparable 接口的对象。例如,IntegerString 和 Double 等类都实现了这个接口,因此可以直接对它们的流进行排序。

List<Integer> numbers = Arrays.asList(3, 1, 4, 1, 5, 9, 2, 6, 5);
List<Integer> sortedNumbers = numbers.stream()
.sorted()
.collect(Collectors.toList());
System.out.println(sortedNumbers); // 输出: [1, 1, 2, 3, 4, 5, 5, 6, 9]

如果你想根据自定义的排序逻辑对流中的元素进行排序,你可以向 sorted() 方法传递一个 Comparator。例如,如果你想根据字符串的长度对流中的字符串进行排序,你可以这样做:

List<String> words = Arrays.asList("apple", "banana", "kiwi", "cherry");
List<String> sortedWords = words.stream()
.sorted(Comparator.comparing(String::length))
.collect(Collectors.toList());
System.out.println(sortedWords); // 输出可能是: [kiwi, cherry, apple, banana]

在上面的例子中,Comparator.comparing(String::length) 创建了一个比较器,它根据字符串的长度来比较字符串。

请注意,sorted() 方法返回一个新的流,它不会修改原始流。如果你想将排序后的结果存储回一个列表或其他集合中,你需要使用如 collect() 这样的终端操作。

========================================================================

大家好!感谢大家一路的支持与陪伴。为此我们创建了一个社群,聚集了行业内一帮大佬!大部分都是程序员,更有很多领域大佬!在此,邀请大家加入一起交流一起进步!

感兴趣的小伙伴可以在此回复我,同时通过作者加入者,作者奉上以下福利:

1、开箱即可使用的xhs、dy、ks爬虫项目(三选一)
2、xhs的x-s加密算法(补环境版本)
3、pdd的anti_content通用算法(纯算)
4、爬虫JS逆向专栏半价(后续全部都是干货!Web逆向成神之路)

时间有限,欢迎大家咨询!🌹🌹🌹

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wddblog

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值