stream根据某个字段倒序
时间: 2023-11-22 21:47:43 浏览: 138
可以使用Java 8中的stream对某个字段进行倒序排序,具体方法如下:
```java
list.stream().sorted(Comparator.comparing(类::属性一, Comparator.reverseOrder()));
```
其中,`list`是需要排序的列表,`类`是列表中元素的类型,`属性一`是需要排序的字段名。这段代码会根据`属性一`进行降序排序。
另外,还可以先以`属性一`升序排序,然后再对结果进行降序排序,具体方法如下:
```java
list.stream().sorted(Comparator.comparing(类::属性一).reversed());
```
这段代码会先以`属性一`进行升序排序,然后再对结果进行降序排序。
相关问题
list stream 根据 某个字段倒序排
在Java中,`List` 和 `Stream` 结合可以方便地处理集合数据并实现按特定字段倒序排序的功能。假设你有一个包含自定义对象(比如User类)的List,并且User类有一个名为age的字段,你可以这样做:
```java
import java.util.List;
import java.util.stream.Collectors;
class User {
private String name;
private int age;
// getters and setters...
@Override
public String toString() {
return "User{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
public List<User> sortedUsersByAgeDesc(List<User> users) {
return users.stream()
.sorted(Comparator.comparing(User::getAge).reversed())
.collect(Collectors.toList());
}
```
在这个例子中,`stream()`将List转换为流(Stream),`sorted()`方法接受一个Comparator用于指定排序规则,`reversed()`则让排序结果从大到小,最后通过`collect()`方法收集回一个新的List。
Stream.sorted 根据某个字段倒序
假设您有一个包含对象的列表,并且您想根据对象的某个字段进行排序,您可以使用 `Comparator.comparing()` 方法来定义按照哪个字段排序。然后,您可以使用 `Comparator.reverseOrder()` 方法来获取一个默认的逆序排序器,以便进行逆序排序。
下面是一个示例代码:
```java
import java.util.Arrays;
import java.util.Comparator;
import java.util.List;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
List<Person> people = Arrays.asList(
new Person("Alice", 25),
new Person("Bob", 30),
new Person("Charlie", 20),
new Person("Dave", 35),
new Person("Eve", 25)
);
List<Person> sortedPeople = people.stream()
.sorted(Comparator.comparing(Person::getAge).reversed())
.collect(Collectors.toList());
System.out.println(sortedPeople);
}
}
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;
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
```
这将输出:`[Person{name='Dave', age=35}, Person{name='Bob', age=30}, Person{name='Alice', age=25}, Person{name='Eve', age=25}, Person{name='Charlie', age=20}]`,即按照年龄进行逆序排序后的人员列表。
阅读全文