用于对包含apache- *库的POJO的java.util.List进行排序的任何实用程序方法

时间:2012-04-24 16:26:05

标签: java sorting collections

是否有任何一种实用方法可以对列表进行排序,如下所示:

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(列表,比较器),但创建一个匿名类看起来像是快速排序需求压倒性的,我正在寻找像一种实用方法,它使用反射来访问属性值和排序元素

4 个答案:

答案 0 :(得分:2)

Collections.sort并在pojo上实施comparable或将comparator传递给排序方法。

答案 1 :(得分:0)

使用Comparable接口创建列表,ArrayList和Collections,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)

答案 2 :(得分:0)

实现Comparable(在同一个类中)或Comparator(在任何单独的类中,如果你没有要排序的类的源代码),然后调用Collections.sort

答案 3 :(得分:0)

坚持核心基础可以在这种情况下真正有所帮助,使用可比较的,对于某些扩展逻辑使用比较器,经过测试和高效。

由于 ABHI