该Collections.sort方法接受比较器作为其第二个参数.您可以传入一个比较器,用于定义所需的排序.例如给出一个Person类:
class Person {
private final String name;
private final int score;
Person(String name, int score) {
this.name = name;
this.score = score;
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", score=" + score +
'}';
}
}
Run Code Online (Sandbox Code Playgroud)
您可以使用Collections.sort自定义比较器按照得分的降序对人员进行排序,如下所示:
List<Person> list = new LinkedList<>(Arrays.asList(new Person("Jack", 3), new Person("Mike", 9)));
System.out.println("before: " + list);
Collections.sort(list, new Comparator<Person>() {
@Override
public int compare(Person o1, Person o2) {
return o2.score - o1.score;
}
});
System.out.println("after: " + list);
Run Code Online (Sandbox Code Playgroud)
这将输出:
Run Code Online (Sandbox Code Playgroud)before: [Person{name='Jack', score=3}, Person{name='Mike', score=9}] after: [Person{name='Mike', score=9}, Person{name='Jack', score=3}]
| 归档时间: |
|
| 查看次数: |
3775 次 |
| 最近记录: |