我正在尝试创建一个二维数组的哈希映射。我使用以下代码执行此操作:
@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)
非常感谢你的帮助,谢谢。
答案 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<>();
}
}