首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

list 中存放 地图,然后排序

2012-11-08 
list 中存放 map,然后排序今天同事遇到一个问题,需要在List中存放Map,每个map只存储一对值。需要按值排序。

list 中存放 map,然后排序

今天同事遇到一个问题,需要在List中存放Map,每个map只存储一对值。

需要按值排序。

勾起了记忆深处的java 比较器。这玩意不常用,估计很多人都没怎么用过。

觉得有点意思,特意贴出来。

?

Public class Test{    public void test(){       List<Map<String,Integer>> list = new ArrayList<Map<String,Integer>>();Map<String,Integer> t1 = new HashMap<String,Integer>();Map<String,Integer> t2 = new HashMap<String,Integer>();Map<String,Integer> t3 = new HashMap<String,Integer>();Map<String,Integer> t4 = new HashMap<String,Integer>();t1.put("a", 1);t2.put("b", 2);t3.put("c", 3);t4.put("d", 1);list.add(t1);list.add(t2);list.add(t3);list.add(t4);Collections.sort(list, new MapCompare());System.out.println(list);    }    private class MapCompare implements Comparator<Map<String,Integer>>{      public int compare(Map<String,Integer> o1, Map<String,Integer> o2) {int value1 = o1.entrySet().iterator().next().getValue();int value2 = o2.entrySet().iterator().next().getValue();return value1-value2;}   }}

?

热点排行