java中stream流倒序排序
时间: 2023-09-24 16:13:51 浏览: 141
可以使用`sorted()`方法和`Comparator.reverseOrder()`来实现stream流的倒序排序。
例如,有一个包含整数的List,需要按照倒序排序:
```java
List<Integer> numbers = Arrays.asList(3, 1, 4, 1, 5, 9, 2, 6, 5);
List<Integer> reversedNumbers = numbers.stream()
.sorted(Comparator.reverseOrder())
.collect(Collectors.toList());
```
其中,`sorted()`方法会根据提供的`Comparator`对元素进行排序,`reverseOrder()`方法返回一个比较器,可以将元素按照相反的顺序进行排序。
最后使用`collect()`方法将排序后的结果收集到一个新的List中。
如果需要对对象进行倒序排序,需要在`Comparator`中指定对象的比较方式。例如,对一个包含Person对象的List按照年龄倒序排序:
```java
List<Person> people = Arrays.asList(new Person("Alice", 25),
new Person("Bob", 30),
new Person("Charlie", 20));
List<Person> reversedPeople = people.stream()
.sorted(Comparator.comparingInt(Person::getAge).reversed())
.collect(Collectors.toList());
```
其中,`comparingInt()`方法返回一个根据指定属性比较的比较器,使用`reversed()`方法将比较器的排序顺序反转。最后同样使用`collect()`方法将排序后的结果收集到一个新的List中。
阅读全文