在Java中出现流之前,我曾经使用以下代码对元素进行排序:
Collections.sort(collection, new CustomComparator());
现在我发现只需这样做就可以得到相同的结果:
collection.stream().sorted(new CustomComparator());
在两种情况下,我使用了列表和自定义比较器来实现
Comparator
(我需要这个,无法在类本身上实现)。除了流解决方案“看起来更好”之外,我没有发现任何表明它们有任何不同的东西。
使用流版本有什么优势吗?我的意思是... 它更高效吗?有什么区别吗?
Collections.sort(...)
会在原来的集合中就地排序,而collection.stream().sorted()
则返回一个排序后的流,你需要将其收集到一个新变量(集合)中。 - Oleksandr Pyrohovcollection.sort(new CustomComparator())
怎么样? - shmosel