2010-11-22 184 views
0

嗨 我有一个arrayList有一些objects.also我的对象有两个字段(1)名称(2)成本 我想排序此arrayList与其成本field.is有任何特殊的方法,为我做或我应该写我自己?还是否有用于doeing一些这方面的方法,什么是它的时间复杂度(O(N),(O(nlogn))?基于字段对ArrayList进行排序?

感谢

回答

4

如果你喜欢键入saftey(不使用BeanComparator),那么你需要编写自己的比较器。

例如

Collections.sort(list, new Comparator<SomeType>() { 
    public int compareTo(SomeType lhs, SomeType rhs) { 
     return lhs.getCost().compareTo(rhs.getCost()); 
    } 
}); 

注意,这不是无效的(可以成本为零?)。

另一种选择是使用BeanComparator,但要确保添加了一个测试,以确保排序始终有效,以防方法名称更改。

2

如果为需要比较的对象实现Comparator接口,则可以使用Collections.sort()方法进行排序。

相关问题