java流根据对象中的某个属性排序
时间: 2023-11-16 17:07:59 浏览: 87
在Java中,你可以使用`Comparator`和`Collections`工具类来根据对象中的某个属性排序流。以下是一个示例代码:
假设有一个名为`Person`的类,其中包含`name`和`age`属性:
```java
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;
}
}
```
现在有一个`List`类型的对象列表,你可以使用以下代码根据`Person`对象的`age`属性对其进行排序:
```java
List<Person> people = new ArrayList<>();
// 添加一些 Person 对象到列表中
Collections.sort(people, Comparator.comparing(Person::getAge));
```
以上代码将根据`age`属性对`people`列表进行排序。你可以使用`Comparator`类的`comparing`方法来指定要排序的属性,它需要一个函数接口,该函数接口返回要排序的属性值。在本例中,我们使用了一个lambda表达式来返回`Person`对象的`age`属性。
如果你想按照`age`属性进行逆序排序,你可以使用以下代码:
```java
Collections.sort(people, Comparator.comparing(Person::getAge).reversed());
```
以上代码将根据`age`属性对`people`列表进行逆序排序。`reversed()`方法将排序方向反转。
阅读全文