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里面拿出来的第二个namereturn 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}]