【发布时间】:2018-12-06 18:17:45
【问题描述】:
我有一个简单的类——Person。
public class Person {
private int age;
public Person(int age) {
this.age = age;
}
public int GetAge() {
return age;
}
}
我列出了 10 到 20 岁的人。 现在,我想使用 Collections.sort() 方法对列表进行排序,但我不明白这是如何工作的。
public class Main {
public static void main (String [] args) throws IOException {
List<Person> list = new ArrayList<Person>();
list.add(new Person (11));
list.add(new Person (13));
list.add(new Person (32));
list.add(new Person (10));
Collections.sort(list, new Comparator <Person>() {
@Override
public int compare(Person a1, Person a2) {
return a1.GetAge() > a2.GetAge();
}
});
}
}
【问题讨论】:
-
你不明白什么?
-
这根本行不通。
-
它编译了吗? compare 应该返回 int 而不是 boolean 在你的情况下。
-
不,它不会编译。
a1.GetAge() > a2.GetAge()返回boolean。 @MikhailDedyukhin 见 duffymo 的回答。 -
@Snoob 或者你可以:
Collections.sort(list, Comparator.comparing(Person::GetAge));
标签: java list sorting collections