您好 我有一个arrayList,它有一些对象。另外我的对象有两个字段(1)name(2)cost 我想用它的cost field对这个arrayList进行排序。是否有任何特殊方法可以为我做,或者我应该自己写呢?如果有一些方法可以做到这一点,它的时间复杂度是多少(O(n),( O(nlogn))?
感谢
答案 0 :(得分:4)
如果您喜欢输入saftey(不使用BeanComparator),那么您需要编写自己的比较器。
e.g。
Collections.sort(list, new Comparator<SomeType>() {
public int compareTo(SomeType lhs, SomeType rhs) {
return lhs.getCost().compareTo(rhs.getCost());
}
});
注意,这不是null安全的(可以为null?)。
另一个选项是使用BeanComparator,但请确保添加一个测试,以确保排序始终有效,以防方法名称发生变化。
答案 1 :(得分:2)
如果为需要比较的对象实现Comparator接口,则可以使用Collections.sort()
方法进行排序。
答案 2 :(得分:0)
查看Bean Comparator的几个选项。