在一个实体类中实现list多个字段的排序 Java代码
时间: 2024-03-03 20:48:36 浏览: 86
假设有一个实体类Person,包含了多个字段,如下所示:
```java
public class Person {
private String name;
private int age;
private double height;
// 省略getter和setter方法
}
```
现在要对一个Person对象的List按照多个字段进行排序,可以使用Java的Comparator接口来完成。Comparator接口有一个compare方法,用于比较两个对象的大小。具体实现如下:
```java
List<Person> persons = new ArrayList<>();
// 假设persons中已经有多个Person对象
Collections.sort(persons, new Comparator<Person>() {
@Override
public int compare(Person p1, Person p2) {
// 首先按照年龄升序排序,如果年龄相同,则按照身高降序排序,如果身高也相同,则按照姓名升序排序
if (p1.getAge() != p2.getAge()) {
return p1.getAge() - p2.getAge();
} else if (p1.getHeight() != p2.getHeight()) {
return Double.compare(p2.getHeight(), p1.getHeight());
} else {
return p1.getName().compareTo(p2.getName());
}
}
});
```
上述代码中,首先按照年龄升序排序,如果年龄相同,则按照身高降序排序,如果身高也相同,则按照姓名升序排序。可以根据实际需求,自定义多个排序条件。
阅读全文