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()));

在这里ab通过lambda表达式推断为Person类型。

以上是 Java使用比较器降序排序(用户定义的类) 的全部内容, 来源链接: utcz.com/qa/430012.html

回到顶部