比方说,我有一个Hashmap
,我希望两个Integer
的数组实际上是每个值的键。我不知道如何获取正确的值。它应该已经存储在Hashmap
public class Mapky {
public static void main(String[] args) {
HashMap<Integer[], String> mapka = new HashMap<>();
mapka.put(new Integer[]{10,23}, "Hello");
System.out.println(mapka.get(new Integer[]{10,23}));
}
}
这也是为什么
System.out.println(new Integer[]{10,23}.equals(new Integer[]{10,23}));
返回false
吗?
答案 0 :(得分:1)
您必须提供对密钥的引用。
如果创建new Integer[]{10, 23}
,则将创建一个不同的,该值具有相同的值,但不是密钥。
这样做:
public static void main(String[] args) {
Map<Integer[], String> mapka = new HashMap<>();
Integer[] key = new Integer[]{10, 23};
mapka.put(key, "Hello");
System.out.println(mapka.get(key));
}