我有一个包含4个成员的java对象列表。
int id;
String name;
String age;
int order;
我想对此对象的列表进行排序w.r.t order
。
答案 0 :(得分:4)
class Foo {
private int id;
private String name;
private String age;
private int order;
//accessors
}
使用自定义Comparator
List<Foo> list = null;
Collections.sort(list, new Comparator<Foo>() {
public int compare(Foo o1, Foo o2) {
return Integer.valueOf(o1.getOrder()).compareTo(Integer.valueOf( o2.getOrder()));
}
});
答案 1 :(得分:2)
我建议您实施自定义Comparator,如果您尝试修改排序条件,稍后就可以轻松完成。
答案 2 :(得分:1)
使对象实现Comparable
。
public class Person implements Comparable<Person> {
private int id;
private String name;
private int order;
public int compareTo(Person p) {
return p.order - this.order;
}
}
然后,您可以在Person
等任何已排序的列表中使用此类PriorityQueue
的对象,或者您只需使用Collections.sort(personList)
即可。
答案 3 :(得分:0)
使用 PriorityQueue ,让您的对象扩展可比较。
您还必须实施 compareTo(object o)方法。