stream流中有排序么
时间: 2023-08-04 22:39:34 浏览: 50
流(Stream)是Java 8中引入的一种新的处理数据的方式,它可以对集合进行过滤、映射、匹配、查找、归约等多种操作。在Java 8中,Stream并没有提供排序的方法,但是可以使用sorted()方法对流中的元素进行排序。
sorted()方法有两种重载形式,一种是无参数的,另一种是接收一个Comparator参数的。如果不传递Comparator参数,则默认按照自然顺序进行排序,如果传递了Comparator参数,则按照指定的排序规则进行排序。
示例代码:
```
List<String> list = Arrays.asList("apple", "banana", "orange");
List<String> sortedList = list.stream().sorted().collect(Collectors.toList());
System.out.println(sortedList); // [apple, banana, orange]
```
上面的代码中,我们使用了Stream的sorted()方法对字符串类型的集合进行排序,由于字符串实现了Comparable接口,因此默认按照字典序进行排序。
如果要按照字符串长度倒序排序,可以使用如下代码:
```
List<String> list = Arrays.asList("apple", "banana", "orange");
List<String> sortedList = list.stream().sorted(Comparator.comparingInt(String::length).reversed()).collect(Collectors.toList());
System.out.println(sortedList); // [orange, banana, apple]
```
上面的代码中,我们使用了Stream的sorted()方法和Comparator接口的comparingInt()方法对字符串类型的集合进行排序,按照字符串长度进行比较,然后使用reversed()方法进行倒序排列。