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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 赵国刚 中级黑马   /  2013-8-11 11:41  /  1423 人查看  /  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>(

点评

已经怀疑你有刷分的嫌疑了,小心哦,技术分清零不是说着玩的...  发表于 2013-8-11 17:46

3 个回复

倒序浏览
TreeMap是根据key进行排序的,所以你要做的是让key具有比较性。

你new TreeMap<Character,Integer>();说明这个TreeMap的key是一个Character,你要做的就是让其中保存的Character具有比较性。
因此你传给构造方法的比较器应该是 new Comparator<Character>(){}而不是 new Comparator<Map.Entry<Character,Integer>>(){}。
回复 使用道具 举报
您必须得定义一个带参数的构造函数。

TreeMap的构造函数:
一、TreeMap()
使用键的自然顺序构造一个新的、空的树映射。
二、TreeMap(Comparator<? super K> comparator)
构造一个新的、空的树映射,该映射根据给定比较器进行排序。(您这里用的是这个构造函数,所以得自己定义一个才行)
三、TreeMap(Map<? extends K,? extends V> m)
构造一个与给定映射具有相同映射关系的新的树映射,该映射根据其键的自然顺序 进行排序。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马