2010-11-22 106 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()方法進行排序。

相關問題