我使用以下代码来检查数组是否存在于
HashMap
中:public class Test {
public static void main(String[] arg) {
HashMap<int[], String> map = new HashMap<int[], String>();
map.put(new int[]{1, 2}, "sun");
System.out.println(map.containsKey((new int[]{1, 2})));
}
}
但是这段代码打印出了False
。我该如何检查数组是否存在于HashMap
中?
equals()
是不够的,您还需要实现hashCode()
。请参阅《Effective Java》第3章(可在线获取:http://java.sun.com/developer/Books/effectivejava/Chapter3.pdf)。 - Joachim Sauer