-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

Use the Comparable interface to create a list, ArrayList, and the sort method of Collections, Collections.sort().

Inside the compareTo() method you can use your logic to order the list.

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

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

As an addedum, you can use the variant that takes a Comparator as an argument:

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

Implement Comparable(In the same class) or Comparator( In any seperate class if you dont have the source code of the class you want to sort) and then call Collections.sort

于 2012-04-24T16:33:01.293 回答
0

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

谢谢阿比

于 2012-04-24T16:33:55.817 回答