
排序()
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()。
- 当您的用例需要删除重复项并对结果元素进行排序时,可以组合使用这两种方法。










