使用Integer []作为关键字搜索Hashmap

时间:2019-03-20 12:32:59

标签: java hashmap

比方说,我有一个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吗?

1 个答案:

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