2017-08-15 41 views
1

我想創建hashmaps的2d數組。我爲此用下面的代碼:Java - 添加元素到哈希表數組產生空錯誤

@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

什麼是'Map' .. – Maroun

+1

提示:什麼?你相信'arrayBlock3 [0] [0]'的值是,爲什麼? –

+0

@JonSkeet我想給'arrayBlock3 [0] [0]'分配一個值,並在這樣做拋出空指針異常,但我不確定爲什麼。 – StephaneIsGod

回答

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<>(); 
    } 
} 
+1

謝謝@YCF_L!出於某種原因,已經忘記了那些哈哈 –