2012-04-24 11 views
-1

次のようなリストをソートするユーティリティメソッドのいずれかの種類があります:apache-の種類のPOJOを含むjava.util.Listにソートする任意のユーティリティメソッドは、*ライブラリ

POJO pojo1 = new POJO(); 
pojo1.setFoo("abc"); 

POJO pojo2 = new POJO(); 
pojo2.setFoo("abc"); 

List theList = new ArrayList<POJO>(); 
theList.add(pojo1); 
theList.add(pojo2); 

SortUtils.sort(theList, "foo", SortType.ALPHABETICAL, SortDirection.ASC) 

EDIT:あなたのためのおかげであなたがPOJOにComparableを実装させるか、Collections.sort(list、Comparator)を使用させることができますが、匿名クラスを作成すると、素早くソートする必要があるように見えます。私はリフレクションを使ってアクセスするユーティリティメソッドのようなものを探しています属性値とソート要素

+0

本当に?私は反射のオーバーヘッドが、これを本当に不愉快に遅くすると思うだろう。 –

+0

もし私がちょうどいくつかの要素を持っていれば、 –

答えて

0

List、ArrayList、Collections Collections.sort()のソートメソッドを作成するには、Comparableインターフェイスを使用します。

compareTo()メソッドの内部では、ロジックを使用してリストを並べ替えることができます。 addedumとして

http://docs.oracle.com/javase/7/docs/api/java/lang/Comparable.html

http://onjava.com/onjava/2003/03/12/java_comp.html

、あなたは、引数としてコンパレータを取るバリアント使用することができます、はjava.util.Comparatorを

http://docs.oracle.com/javase/7/docs/api/java/util/Collections.html#sort(java.util.List)を

0

(Comparableを実装同じクラス)またはComparator(ソートしたいクラスのソースコードを持っていない場合は別のクラスで)を呼び出し、Collections.sortを呼び出す

0

コアファンダメンタルズに固執することは、このケースでは本当に役立つことがあります。

おかげ Abhi