stream排序 倒序
时间: 2023-07-23 20:09:46 浏览: 49
您可以使用Java 8的Stream API进行排序,然后使用reversed()方法进行倒序排列。例如,对一个整数列表进行倒序排序可以使用以下代码:
```
List<Integer> numbers = Arrays.asList(3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5);
List<Integer> sortedNumbers = numbers.stream()
.sorted(Comparator.reverseOrder())
.collect(Collectors.toList());
```
在上述代码中,我们首先将整数列表转换为流,然后使用sorted()方法进行排序,通过Comparator.reverseOrder()方法将排序顺序反转为倒序。最后,我们使用collect()方法将排序后的流转换回List类型。
相关问题
java 集合stream排序倒序
Java集合中的Stream是一种函数式编程的方式,可以对集合进行各种操作,其中包括排序。在Stream中,可以使用sorted()方法对集合进行排序,而且可以根据需要进行正序或倒序排序。具体实现方式如下:
1. 正序排序:list.stream().sorted(Comparator.comparing(类::属性一));
2. 倒序排序:list.stream().sorted(Comparator.comparing(类::属性一,Comparator.reverseOrder()));
其中,第一个方法是根据属性一进行正序排序,第二个方法是根据属性一进行倒序排序。在第二个方法中,使用了Comparator.reverseOrder()方法来实现倒序排序。
除此之外,还可以使用thenComparing()方法来实现多条件排序,例如先按年龄降序排序,年龄相等的话,则按年级升级排序:
resultList = resultList.stream().sorted(Comparator.comparing(User::getAge).reversed().thenComparing(Comparator.comparing(User::getGrade))).collect(Collectors.toList());
这样就可以实现按照多个条件进行排序了。
使用对象中某个字段 stream排序 倒序
假设您有一个包含多个对象的列表,每个对象都包含一个字段,您想按照该字段进行排序并进行倒序排列,可以使用以下代码:
```
List<Person> people = Arrays.asList(
new Person("Alice", 25),
new Person("Bob", 30),
new Person("Charlie", 20),
new Person("David", 35)
);
List<Person> sortedPeople = people.stream()
.sorted(Comparator.comparing(Person::getAge).reversed())
.collect(Collectors.toList());
```
在上述代码中,我们首先将Person对象列表转换为流,然后使用sorted()方法进行排序。通过Comparator.comparing()方法指定要按照哪个字段进行排序,然后使用reversed()方法将排序顺序反转为倒序。最后,我们使用collect()方法将排序后的流转换回List类型。
假设Person类具有以下定义:
```
public class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
```
阅读全文