2010-11-22 11 views
0

こんにちは 私はいくつかのオブジェクトを持っているarrayListを持っています。また、私のオブジェクトは2つのフィールド(1)の名前を持っています(2)コスト 私はこのarrayListをコストfield.isで並べ替えるか、私はそれを自分で書く必要がありますか?また、このdoeingのためのいくつかの方法がある場合は、その時間の複雑さ(カップルのためのO(N)、(O(nlogn))?フィールドに基づいてArrayListをソートする?

おかげで

答えて

4

タイプセーフティ(BeanComparatorを使用しない)が好きな場合は、独自のコンパレータを作成する必要があります。

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

注意:これはnullではありません(nullでもかまいません)。

もう1つのオプションはBeanComparatorを使用することですが、メソッド名が変更された場合にソートが常に機能することを確認するテストを追加するようにしてください。

2

比較する必要があるオブジェクトに対してComparatorインターフェイスを実装する場合、並べ替えにはCollections.sort()メソッドを使用できます。

関連する問題