javaStream流根据对象下的属性排序
时间: 2024-02-20 14:59:57 浏览: 79
在 Java 8 的 Stream API 中,可以使用 `sorted()` 方法对对象流进行排序。如果想要根据对象的某个属性进行排序,可以使用 `Comparator.comparing()` 方法,该方法接收一个 `Function` 对象作为参数,用于指定需要比较的属性。
以下是一个例子,假设有一个 `Person` 类,每个实例有一个 `age` 属性,需要根据 `age` 属性对 `Person` 对象流进行排序:
```java
List<Person> persons = Arrays.asList(
new Person("Alice", 25),
new Person("Bob", 20),
new Person("Charlie", 30)
);
List<Person> sortedPersons = persons.stream()
.sorted(Comparator.comparing(Person::getAge))
.collect(Collectors.toList());
```
在上面的例子中,使用 `Comparator.comparing()` 方法指定了按照 `Person` 对象的 `age` 属性进行排序。在 `comparing()` 方法中,使用 `Person::getAge` 方法引用指定了需要比较的属性。
注意,`comparing()` 方法返回的是一个 `Comparator` 对象,因此可以在 `sorted()` 方法中直接使用,也可以在 `sorted()` 方法之前保存到一个变量中再使用。
阅读全文