stream流sort
时间: 2023-10-13 12:26:14 浏览: 112
stream流的sort()方法可以用于对流中的元素进行排序。它可以按照自然顺序或者根据自定义的比较器对元素进行排序。
如果流中的元素实现了Comparable接口,那么sort()方法会使用元素的compareTo()方法进行排序。示例代码如下:
```java
List<Integer> numbers = Arrays.asList(5, 3, 8, 1, 2);
List<Integer> sortedNumbers = numbers.stream()
.sorted()
.collect(Collectors.toList());
System.out.println(sortedNumbers); // 输出 [1, 2, 3, 5, 8]
```
如果流中的元素没有实现Comparable接口,我们可以使用Comparator来指定排序规则。比如,如果要按照元素长度进行排序,可以使用如下代码:
```java
List<String> strings = Arrays.asList("banana", "apple", "pear", "orange");
List<String> sortedStrings = strings.stream()
.sorted(Comparator.comparingInt(String::length))
.collect(Collectors.toList());
System.out.println(sortedStrings); // 输出 [pear, apple, orange, banana]
```
这样,sort()方法会根据元素的长度进行排序。我们使用了`Comparator.comparingInt()`方法来指定以字符串长度作为比较依据。
阅读全文