stream的sorted用法
时间: 2023-10-25 11:26:41 浏览: 37
stream的sorted用于对流中的元素进行排序。它有两种重载形式:
1. sorted():该方法返回一个新的有序流,其中的元素按照自然顺序进行排序。如果流中的元素没有实现Comparable接口,则会抛出ClassCastException。
2. sorted(Comparator<? super T> comparator):该方法返回一个新的有序流,其中的元素根据提供的比较器进行排序。比较器可以按照自定义的方式定义元素的排序规则。
下面是一个示例代码,演示了sorted方法的使用:
```
List<Integer> numbers = Arrays.asList(5, 2, 8, 1, 10);
// 使用自然顺序进行排序
List<Integer> sortedList1 = numbers.stream()
.sorted()
.collect(Collectors.toList());
System.out.println(sortedList1); // 输出:[1, 2, 5, 8, 10]
// 使用自定义比较器进行排序
List<Integer> sortedList2 = numbers.stream()
.sorted(Comparator.reverseOrder())
.collect(Collectors.toList());
System.out.println(sortedList2); // 输出:[10, 8, 5, 2, 1]
```
在上述代码中,首先我们创建了一个包含一些整数的列表。然后使用stream方法将其转换为流,接着使用sorted方法对流中的元素进行排序。第一个例子中使用了默认的自然顺序进行排序,而第二个例子中使用了自定义的比较器,以降序方式对元素进行排序。最后,使用collect方法将排序后的结果收集到一个新的列表中,并打印出来。