java list 两个字段排序
时间: 2023-08-18 15:06:12 浏览: 100
可以使用Java的Comparator接口来定义排序规则,下面是一个示例代码:
假设有一个名为Person的类,有两个字段name和age,现在需要按照name升序排列,如果name相同则按照age降序排列。
```
import java.util.*;
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;
}
public static void main(String[] args) {
List<Person> personList = new ArrayList<>();
personList.add(new Person("Tom", 20));
personList.add(new Person("Jack", 30));
personList.add(new Person("Tom", 25));
personList.add(new Person("Mike", 25));
// 按照name升序排列,如果name相同则按照age降序排列
Collections.sort(personList, new Comparator<Person>() {
@Override
public int compare(Person p1, Person p2) {
int result = p1.getName().compareTo(p2.getName());
if (result == 0) {
result = p2.getAge() - p1.getAge();
}
return result;
}
});
for (Person person : personList) {
System.out.println(person.getName() + " " + person.getAge());
}
}
}
```
输出结果为:
```
Jack 30
Mike 25
Tom 25
Tom 20
```
阅读全文