1.自然排序
List<Integer> list = new ArrayList<Integer>();
list.add(3);
list.add(1);
list.add(2);
// 自然顺序
Collections.sort(list);
System.out.println(list.toString());
运行结果:
[1, 2, 3]
2.List[Map]依据map的key值排序
使用Collections.sort排序,原理和冒泡排序相同。
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
Map<String, Object> map1 = new HashMap<String, Object>();
map1.put("name", "p");
map1.put("cj", "5");
Map<String, Object> map2 = new HashMap<String, Object>();
map2.put("name", "h");
map2.put("cj", "36");
Map<String, Object> map3 = new HashMap<String, Object>();
map3.put("name", "f");
map3.put("cj", "31");
list.add(map1);
list.add(map2);
list.add(map3);
// 排序前
for (Map<String, Object> map : list) {
System.out.println(map.get("cj"));
}
Collections.sort(list, new Comparator<Map<String, Object>>() {
@Override
public int compare(Map<String, Object> o1, Map<String, Object> o2) {
//冒泡排序法
Integer sort1 = Integer.valueOf(o1.get("cj").toString());// sort1是从list里面拿出来的前一个
Integer sort2 = Integer.valueOf(o2.get("cj").toString()); // sort2是从list里面拿出来的后一个
return sort1.compareTo(sort2);
}
});
System.out.println("-------------------");
// 排序后
for (Map<String, Object> map : list) {
System.out.println(map.get("cj"));
}
运行结果:
5
36
31
-------------------
5
31
36