排序()
sorted() 方法用于对流的元素进行排序。它根据元素的自然顺序或自定义比较器对元素进行排序。
主要特征:
返回已排序的元素流。 不消除重复项(它保留所有元素)。 可以使用自然排序或自定义比较器。
示例 1:自然排序
list<integer> numbers = list.of(4, 2, 3, 1, 4); list<integer> sortedlist = numbers.stream() .sorted() .collect(collectors.tolist()); system.out.println(sortedlist); // output: [1, 2, 3, 4, 4]
示例 2:自定义订购
list<string> names = list.of("charlie", "alice", "bob"); list<string> sortednames = names.stream() .sorted((a, b) -> b.compareto(a)) // reverse order .collect(collectors.tolist()); system.out.println(sortednames); // output: [charlie, bob, alice]
2。不同()
立即学习“Java免费学习笔记(深入)”;
distinct() 方法用于从流中删除重复元素。它仅根据 equals() 方法的结果保留唯一元素。
主要特征:
- 消除流中的重复项。
- 保留元素的原始顺序(稳定)。
- 依赖 equals() 的实现来确定唯一性。
示例:删除重复项
list<integer> numbers = list.of(4, 2, 3, 1, 4); list<integer> distinctlist = numbers.stream() .distinct() .collect(collectors.tolist()); system.out.println(distinctlist); // output: [4, 2, 3, 1]
结合sorted()和distinct()的示例
您可以同时使用这两种方法,首先删除重复项,然后对剩余元素进行排序。
List<Integer> numbers = List.of(4, 2, 3, 1, 4); List<Integer> result = numbers.stream() .distinct() // Remove duplicates .sorted() // Sort the unique elements .collect(Collectors.toList()); System.out.println(result); // Output: [1, 2, 3, 4]
何时使用每个?
- 当您想要按特定顺序对元素进行排序时,请使用sorted()。
- 当您想确保流中没有重复项时,请使用distinct()。
- 当您的用例需要删除重复项并对结果元素进行排序时,可以组合使用这两种方法。
以上就是Java 流 |流中的sorted()和distinct()有什么区别?的详细内容,更多请关注图灵教育其它相关文章!