基于字段对ArrayList进行排序?
问题描述:
嗨 我有一个arrayList有一些objects.also我的对象有两个字段(1)名称(2)成本 我想排序此arrayList与其成本field.is有任何特殊的方法,为我做或我应该写我自己?还是否有用于doeing一些这方面的方法,什么是它的时间复杂度(O(N),(O(nlogn))?基于字段对ArrayList进行排序?
感谢
答
如果你喜欢键入saftey(不使用BeanComparator),那么你需要编写自己的比较器。
例如
Collections.sort(list, new Comparator<SomeType>() {
public int compareTo(SomeType lhs, SomeType rhs) {
return lhs.getCost().compareTo(rhs.getCost());
}
});
注意,这不是无效的(可以成本为零?)。
另一种选择是使用BeanComparator,但要确保添加了一个测试,以确保排序始终有效,以防方法名称更改。