假设我有一个 Hashmap
我想要两个 Integer
的数组s 实际上是每个值的键。我不知道如何取回正确的值。它应该已经存储在 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
?
最佳答案
您必须提供 key 的引用。
如果您创建一个新的 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));
}
关于java - 以 Integer[] 作为键搜索 Hashmap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55260877/