list集合内存储的是对象类型,怎么根据对象的年龄属性进行倒序排序
时间: 2024-10-28 22:08:48 浏览: 18
C# List OrderBy 动态多字段排序
4星 · 用户满意度95%
在Java中,如果你有一个List集合,其中存储的是包含年龄字段的对象,比如Person对象,你可以通过Comparator接口或者lambda表达式来进行基于年龄的倒序排序。这里有两个方法:
1. 使用`Collections.sort()`和自定义Comparator:
```java
import java.util.*;
class Person {
int age;
// ...其他属性和构造函数
@Override
public int compareTo(Person other) {
return Integer.compare(other.age, this.age); // 返回负数表示this的age更大
}
}
List<Person> personList = ...; // 假设已经填充了Person对象
Collections.sort(personList, Collections.reverseOrder()); // 逆序排序
```
2. 使用lambda表达式(Java 8及以上版本):
```java
personList.sort(Comparator.comparingInt(Person::getAge).reversed());
```
这两个例子都是按照年龄值降序对Person列表进行了排序。如果你想在原地修改列表,记得传入`Collections.reverseOrder()`;如果返回一个新的排序后的列表,可以像上述第二种方法那样直接使用`sort()`。
阅读全文