有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Java向Hashmaps数组添加元素会产生空错误

我正在尝试创建一个二维哈希映射数组。我使用以下代码执行此操作:

   @SuppressWarnings("unchecked")
    Map<String, Boolean>[][] arrayBlock3 = (Map <String, Boolean>[][]) new Map[6][6];

然而,当我尝试向数组中添加元素时,在运行时向数组中添加元素的第一行出现空指针异常

添加元素的代码是:

    arrayBlock3[0][0].put("B", false);
    arrayBlock3[0][1].put("G", false);
    arrayBlock3[0][2].put("B", false);
    arrayBlock3[0][3].put("B", false);
    arrayBlock3[0][4].put("G", false);
    arrayBlock3[0][5].put("B", false); 

错误消息

Exception in thread "main" java.lang.NullPointerException
at main.main(main.java:20)

非常感谢你的帮助,谢谢


共 (1) 个答案

  1. # 1 楼答案

    您需要初始化Map矩阵中的每个元素(并且需要使用实现Map的类,例如HashMap):

    for (int i = 0; i < arrayBlock3.length; i++) {
        for (int j = 0; j < arrayBlock3[i].length; j++) {
            arrayBlock3[i][j] = new HashMap<>();
        }
    }