黑马程序员技术交流社区

标题: 程序有错误求解释、、、 [打印本页]

作者: 赵国刚    时间: 2013-8-11 11:41
标题: 程序有错误求解释、、、
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>(
作者: longlangcx    时间: 2013-8-11 15:47
TreeMap是根据key进行排序的,所以你要做的是让key具有比较性。

你new TreeMap<Character,Integer>();说明这个TreeMap的key是一个Character,你要做的就是让其中保存的Character具有比较性。
因此你传给构造方法的比较器应该是 new Comparator<Character>(){}而不是 new Comparator<Map.Entry<Character,Integer>>(){}。




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