Java 将对象添加到HashMap并将对象作为键的问题
为什么以下代码会因编译错误而失败Java 将对象添加到HashMap并将对象作为键的问题,java,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 Hash
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);
}
}
class-SampleClass{
}
公共类DemoHashMap{
公共静态void main(字符串[]args){
SampleClass s1=新的SampleClass();
SampleClass s2=新的SampleClass();
映射计数=新的HashMap();
计数。添加(s1,1);
计数。添加(s2,2);
}
}
这段代码不允许我将s1和s2添加到hashmap中。在计数声明中,我已指定键可以是Object。Map中没有
add
方法。请改用put
counts.put(s1, 1);
请参阅:-需要做的更正很少 首先,在
Map
中没有add()
,请尝试put()
其次,建议将类SampleClass
的hashCode()
和equals()
用作键时重写
此外,由于您使用的是泛型,建议将映射声明为:
Map counts=newhashmap()代码>尝试以下操作:
Map<SampleClass, Integer> counts = new HashMap<SampleClass, Integer>();
counts.put(s1, 1)
Map counts=newhashmap();
计数。放置(s1,1)
您的意思是“放置”而不是“添加”?当您发布有关错误的问题时,可能会出现重复,请包括错误文本。此外,通过查看Map API,这个问题可以很容易地解决。