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

时间:2017-08-15 15:04:26

标签: java arrays generics hashmap

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

   @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 个答案:

答案 0 :(得分:2)

您需要初始化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<>();
    }
}