在Java中,Stream
API 提供了许多操作来处理和转换数据流。其中,sorted()
方法用于对流中的元素进行排序。这个方法返回一个新的流,其中包含的元素与原始流中的元素相同,但已经根据自然顺序或提供的比较器进行了排序。
如果你调用 sorted()
方法而没有提供任何参数,那么它会根据元素的自然顺序进行排序。这通常适用于实现了 Comparable
接口的对象。例如,Integer
、String
和 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逆向成神之路)
时间有限,欢迎大家咨询!🌹🌹🌹