1,ArrayList<Map.Entry<Character,Integer>> infoidsList=
new ArrayList<Map.Entry<Character,Integer>>(tm.entrySet());
这句话是ArrayList的一个构造方法 ,ArrayList(Collection<? extends E> c) ,把一个集合作为构造方法的参数传进去的 ,tm.entrySet()就是返回一个包含隐射关系的Set集合
2,a.java:3: 类 Map1 是公共的,应在名为 Map1.java 的文件中声名,你可能保存的文件名不是Map1.java,因为如果类A被声明为公共的(public),那么必须将类A保存在名为A.java的文件中;
3,一般情况下都是把比较器放在一个单独的类中,你把比较器放在来Map1中了,变成了内部类,
非静态内部类的情况下,创建内部类对象时必须先创建一个外部类对象 new 外部类名().new 内部类名()
所以Collections.sort(infoidsList,new MyCompare()); 这句new MyCompare()会出错,然后就提示了 (a.java:42: 无法从静态上下文中引用非静态 变量 this)
4,你的比较器在实现 Comparator的时候没有用到泛型,所以会提示 注意:a.java 使用了未经检查或不安全的操作。 用了泛型就不需要用Object了 就不需要强转了,这就是泛型的好处. |