A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 常帅 黑马帝   /  2011-7-18 10:59  /  2053 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

应该通过entry,算法具体过程

3 个回复

倒序浏览
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 编辑 ]

评分

参与人数 1技术分 +1 收起 理由
admin + 1 你知道他在问什么吗?我都没看懂!!

查看全部评分

回复 使用道具 举报
黑马网友  发表于 2011-7-22 15:13:08
藤椅
搞定了。MAP通过entrySet,获得的set通过ArrayList构造函数获得一个List,直接调用Collection的sort方法,比较器中用Map.entry接口的getValue()比较。手机上网,代码就算了
回复 使用道具 举报
黑马网友  发表于 2011-7-22 15:16:46
板凳
谢谢二楼…
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马