赞
踩
List集合有两大排序方式,分别为自然排序和自定义排序。
使用自然排序,需要元素类达到某种要求。
使用自定义排序,就是在需要排序的时候才传入排序规则
自然排序是 Collections.sort 方法,只带一个参数,参数为List集合。
默认能直接使用自然排序的,有基本数据类型的包装类型、String类型等等。 数字类型的自然排序顺序
固定为从小到大
为什么那些类型能用于自然排序?因为它们都有一个特点,就是实现了 Comparable 接口的 compareTo 方法。
该方法的使用意义是让自身对象与另一个对象进行某方面的比较大小,用前者减去后者,返回正数则认为是前者的更大,返回负数则认为前者的更小。
List<Integer> list = new ArrayList();
list.add(2);
list.add(1);
list.add(3);
Collections.sort(list);
System.out.println(list);
// 输出:[1, 2, 3]
List<Map<String, Object>> userList = userService.selectUserList();
Collections.sort(userList, new Comparator<Map<String, Object>>() {
@Override
public int compare(Map<String, Object> o1, Map<String, Object> o2) {
Integer s1 = (Integer) o1.get("age");
Integer s2 = (Integer) o2.get("age");
// return s2 - s1;//降序
return s1 - s2;//升序
}
});
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。