Java使用比较器降序排序(用户定义的类)
我想使用比较器按降序对对象进行排序。
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()
用户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使用比较器降序排序(用户定义的类) 的全部内容, 来源链接: utcz.com/qa/430012.html