java - 以 Integer[] 作为键搜索 Hashmap

标签 java hashmap

假设我有一个 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/

相关文章:

java - 桌面应用程序中的 JPA 实体管理,其中对象用于保持修改状态

java - 在Servlet中创建Session并在JSP页面中使用?

通过创建执行某些工作的接口(interface)的模拟对象来进行 Java 单元测试

java - Eclipse 无法识别构建路径上另一个项目的引用库的导入

c++ - 未声明的数组元素缺少 nullptr

java - 如何获取 Java 中 HashMap 的相同值多次出现的次数?

Java 混淆器在反编译时从不给出纯文本

java - HashMap 覆盖值

java - 使用 Map 和不同类的 NullPointerException

java - 使用 java hashmap 进行 n-gram 建模