Java list按照某个字段排序
时间: 2023-08-13 20:09:08 浏览: 197
要按照 Java List 中的某个字段进行排序,可以使用 `Collections.sort()` 方法并传入一个 `Comparator` 对象来实现。以下是一个示例代码:
假设有一个 `Person` 类,其中包含姓名(`name`)和年龄(`age`)两个字段:
```
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>` 类型的列表,需要按照年龄字段进行排序,可以按照以下步骤进行:
1. 创建一个 `Comparator` 对象,用于比较两个 `Person` 对象的年龄字段,并返回比较结果:
```
Comparator<Person> ageComparator = new Comparator<Person>() {
@Override
public int compare(Person p1, Person p2) {
return Integer.compare(p1.getAge(), p2.getAge());
}
};
```
2. 调用 `Collections.sort()` 方法,并传入列表和上面创建的 `Comparator` 对象:
```
List<Person> personList = new ArrayList<>();
// 添加若干个 Person 对象到列表中
Collections.sort(personList, ageComparator);
```
这样就可以将列表中的 `Person` 对象按照年龄字段进行升序排序。如果需要进行降序排序,只需要将 `compare()` 方法中的返回值取反即可。
阅读全文