我想使用比较器按降序对我的对象进行排序。
class Person {
private int age;
}
在这里,我想对 Person 对象数组进行排序。
我该怎么做?
最佳答案
您可以通过这种方式对用户定义的类进行降序排序,覆盖 compare()方法,
Collections.sort(unsortedList,new Comparator<Person>() {
@Override
public int compare(Person a, Person b) {
return b.getName().compareTo(a.getName());
}
});
或使用Collection.reverse()
按his comment中提到的用户Prince进行降序排序.
你可以像这样进行升序排序,
Collections.sort(unsortedList,new Comparator<Person>() {
@Override
public int compare(Person a, Person b) {
return a.getName().compareTo(b.getName());
}
});
将上面的代码替换为 Lambda 表达式(Java 8 以上),我们得到简洁:
Collections.sort(personList, (Person a, Person b) -> b.getName().compareTo(a.getName()));
从 Java 8 开始,List 有 sort()采用 Comparator 的方法作为参数(更简洁):
personList.sort((a,b)->b.getName().compareTo(a.getName()));
这里 a
和 b
被 lambda 表达式推断为 Person 类型。
关于java - 使用 Comparator 降序排序(用户定义的类),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1946668/