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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 散人online 中级黑马   /  2013-1-27 04:17  /  1208 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

TreeMap<Character,Integer> tm = new TreeMap<Character,Integer>(
        new Comparator<Map.Entry<Character,Integer>>(){  
            
             public int compare(Map.Entry<Character,Integer> me1, Map.Entry<Character,Integer> me2){
                 int mun = me1.getValue().compareTo(me2.getValue());
                 if(mun==0)
                    return me1.getKey().compareTo(me2.getKey());
                 return mun;
             }
       });
new TreeMap然后以匿名内部类的形式传了一个比较器进去,编译报错:
找不到符号
符号: 构造函数 TreeMap(<匿名 java.util.Comparator<java.util.Map.Entry<java.lang.Character,java.lang.Integer>>>)
位置: 类 java.util.TreeMap<java.lang.Character,java.lang.Integer>
      TreeMap<Character,Integer> tm = new TreeMap<Character,Integer>(
                                      ^

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1 神马都是浮云

查看全部评分

3 个回复

倒序浏览
不知道你有没有仔细的看下API文档,
TreeMap<K,V>

TreeMap(Comparator<? super K> comparator)

比较器中参与比较的类型只能是K或者K的父类,你这个例子中
显然Map.Entry<Character,Integer>不是Character的父类,所以编译报错了。

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

回复 使用道具 举报
传的时候看清参数,不要写得这么复杂分开写看得更清。
回复 使用道具 举报
Comparable<T>,Compatator的泛型只能是一种类型,不能是两种。
在new Comparator<Map.Entry<Character, Integer>>();中你存放的是两种类型,所以会报类型转换异常
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马