-1

次のようなリストをソートするためのユーティリティメソッドはありますか:

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)

編集:ご回答ありがとうございますが、POJO に Comparable を実装させるか、Collections.sort(list, Comparator) を使用できることはわかっていますが、匿名クラスを作成すると、迅速な並べ替えのニーズに圧倒されるように見えます。ユーティリティ メソッドのようなものを探しています。リフレクションを使用して属性値にアクセスし、要素を並べ替える

4

4 に答える 4

2

Collections.sortと pojo で比較可能な実装を行うか、コンパレータを sort メソッドに渡します。

于 2012-04-24T16:27:13.873 に答える
0

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

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

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

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

追加として、Comparatorを引数として取るバリアントを使用できます。

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

于 2012-04-24T16:32:00.703 に答える
0

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

于 2012-04-24T16:33:01.293 に答える
0

コアの基本に固執することは、この場合に本当に役立ちます。比較可能なものを使用し、一部の拡張ロジックでは比較器を使用し、テスト済みで効率的です。

ありがとうございます

于 2012-04-24T16:33:55.817 に答える