2016-03-15 66 views
0

我正在嘗試在java中爲我的數獨求解器創建一個arrayList數組,但我在創建它時遇到了麻煩。arrayList數組的數組?

這裏就是我想:

你有什麼建議嗎?謝謝!

+1

是我們用什麼語言?無論如何,只要查看多維數組是如何工作的。 – durbnpoisn

+0

沒有進一步的信息只是一個猜測,但你仍然必須初始化該數組的每個元素,即對於每個「i」和「k」,'possible [i] [k] = new ArrayList <>()'。 –

+3

您最好製作一個Cell類,它包含可能性和答案,然後定義一個9 x 9的2D單元格數組。 –

回答

-1

初始化

ArrayList<ArrayList<Integer>> mylistoflist = new ArrayList<ArrayList<Integer>>(); 
ArrayList<Integer> mylist = new ArrayList<Integer>(); 

然後你可以添加沒有這樣的問題:

mylistoflist .add(100);  
mylistoflist .add(200); 
mylist.add(100);  
mylist.add(200); 

如果添加到mylistoflist您將添加一個完全新的列表,否則,如果你加上MYLIST你會只需將一條記錄添加到列表中即可。 希望它可以幫助你

+1

'mylistoflist .add(100);'不會工作,因爲它期望一個ArrayList –

0

做這樣的:

ArrayList<Integer>[][] possibilities = new ArrayList[9][9]; 

當然現在你必須還初始化每個ArrayList的二維數組中。但上面的例子應該編譯。

爲了初始化:

for (int i = 0; i < possibilities.length; i++){ 
    for (int j = 0; j < possibilities[i].length; j++){ 
     possibilities[i][j] = new ArrayList<Integer>(); 
    } 
} 

然後你就可以像這樣訪問每個成員:

possibilities[0][0].add(2); 
0

試試這個:

final int DIM = 9; 
ArrayList<Integer>[][] possibilities = new ArrayList<Integer>[DIM][DIM]; 
for (int i = 0; i < DIM; i++) 
    for (int j = 0; j < DIM; j++) 
    possibilities[i][j] = new ArrayList<Integer>();