Java中使用commons-beanutils对List元素中的多个属性进行排序2011-06-12 csdn博客 YidingHecommons-beanutils 类库中有一个 BeanComparator 类,可以用来给 JavaBean 排序。但是这个类一次只能对一个属性排序。下面是一个利用 BeanComparator 实现对 JavaBean 的多个属性进行排序的例子,非常简单:
1.import org.apache.commons.beanutils.BeanComparator;2.import java.util.Collections;3.import java.util.Comparator;4.import java.util.List;5. 6./**7. * 对 List 元素的多个属性进行排序的类8. */9.@SuppressWarnings({"unchecked"})10.public class ListSorter {11. 12./**13. * List 元素的多个属性进行排序。例如 ListSorter.sort(list, "name", "age"),则先按14. * name 属性排序,name 相同的元素按 age 属性排序。15. *16. * @param list 包含要排序元素的 List17. * @param properties 要排序的属性。前面的值优先级高。18. */19.public static <V> void sort(List<V> list, final String... properties) {20.Collections.sort(list, new Comparator<V>() {21.public int compare(V o1, V o2) {22.if (o1 == null && o2 == null) return 0;23.if (o1 == null) return -1;24.if (o2 == null) return 1;25. 26.for (String property : properties) {27.Comparator c = new BeanComparator(property);28.int result = c.compare(o1, o2);29.if (result != 0) {30.return result;31.}32.}33.return 0;34.}35.});36.}37.}