为什么以下代码出现编译错误?
class SampleClass{
}
public class DemoHashMap {
public static void main(String[] args) {
SampleClass s1 = new SampleClass();
SampleClass s2 = new SampleClass();
Map<Object, Integer> counts = new HashMap<Object, Integer>();
counts.add(s1, 1);
counts.add(s2, 2);
}
}
此代码不允许我添加s1&amp; s2到hashmap。在计数声明中,我已指定该键可以是Object。
答案 0 :(得分:3)
答案 1 :(得分:2)
很少有更正。
首先add()
中没有Map
,请尝试put()
。
其次,建议在将其用作关键字时覆盖hashCode()
和equals()
类SampleClass
。
此外,由于您使用的是泛型,因此建议将map声明为:
Map<SampleClass, Integer> counts = new HashMap<SampleClass, Integer>();
答案 2 :(得分:0)
试试这个:
Map<SampleClass, Integer> counts = new HashMap<SampleClass, Integer>();
counts.put(s1, 1)