List<Map<String,Object>>集合按照map中的某个值进行排序
举例:
public void test5(){
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
Map<String, Object> map1 = new HashMap<String, Object>();
map1.put("name", "p");
map1.put("周", "10");
Map<String, Object> map2 = new HashMap<String, Object>();
map2.put("name", "h");
map2.put("周", "11");
Map<String, Object> map3 = new HashMap<String, Object>();
map3.put("name", "f");
map3.put("周", "12");
Map<String, Object> map4 = new HashMap<String, Object>();
map4.put("name", "f");
map4.put("周", "9");
Map<String, Object> map5 = new HashMap<String, Object>();
map5.put("name", "f");
map5.put("周", "8");
list.add(map1);
list.add(map3);
list.add(map2);
list.add(map4);
list.add(map5);
//正序
Collections.sort(list, new Comparator<Map<String, Object>>() {
public int compare(Map<String, Object> o1, Map<String, Object> o2) {
Integer name1 = Integer.valueOf(o1.get("周").toString()) ;//name1是从你list里面拿出来的一个
Integer name2 = Integer.valueOf(o2.get("周").toString()) ; //name2是从你list里面拿出来的第二个name
return name1.compareTo(name2);
}
});
System.out.println(list);
//倒序
Collections.reverse(list);
System.out.println(list);
}
结果:
正序结果:
[{name=f, 周=8}, {name=f, 周=9}, {name=p, 周=10}, {name=h, 周=11}, {name=f, 周=12}]
倒序结果:
[{name=f, 周=12}, {name=h, 周=11}, {name=p, 周=10}, {name=f, 周=9}, {name=f, 周=8}]