是否有任何一种实用方法可以对列表进行排序,如下所示:
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(列表,比较器),但创建一个匿名类看起来像是快速排序需求压倒性的,我正在寻找像一种实用方法,它使用反射来访问属性值和排序元素
答案 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