发出将对象添加到具有Object作为键的HashMap的问题

时间:2015-05-05 04:38:09

标签: java

为什么以下代码出现编译错误?

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。

3 个答案:

答案 0 :(得分:3)

Map.Use add中没有put方法。

counts.put(s1, 1);

请参阅: - HashMap

答案 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)