黑马程序员技术交流社区

标题: map按值排序 [打印本页]

作者: 常帅    时间: 2011-7-18 10:59
标题: map按值排序
应该通过entry,算法具体过程
作者: 杨志罡    时间: 2011-7-21 04:34
public static Map.Entry[] getSortedHashtableByValue(Map<String, Integer> map) {
             //用一个Set 引用去接收 map.entrySet()返回的是装有Entry对象的集合;
              Set set = map.entrySet();
          //用    Map.Entry[]接收 set中的元素      
              Map.Entry[] entries = (Map.Entry[]) set.toArray(new Map.Entry[set.size()]);
       //通过自定义的 Comparator比较器,对元素进行排序
              Arrays.sort(entries, new Comparator() {
                    public int compare(Object arg0, Object arg1) {
                         Long key1 = Long.valueOf(((Map.Entry) arg0).getValue().toString());
                         Long key2 = Long.valueOf(((Map.Entry) arg1).getValue().toString());
                         return key1.compareTo(key2);
                     }
               });
               return entries;
     }
[ 本帖最后由 杨志罡 于 2011-07-21  04:35 编辑 ]
作者: 匿名    时间: 2011-7-22 15:13
搞定了。MAP通过entrySet,获得的set通过ArrayList构造函数获得一个List,直接调用Collection的sort方法,比较器中用Map.entry接口的getValue()比较。手机上网,代码就算了
作者: 匿名    时间: 2011-7-22 15:16
谢谢二楼…




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2