2013-05-22 37 views
-2

IM的,繼承人的代碼:
'ArrayList<Integer>[] solucao= new ArrayList[6];' 及以下使用此代碼:陣列的ArrayList有麻煩的ArrayList的數組

  solucao[0].add(1); 
      solucao[0].size(); 
       solucao[1].size(); 
       solucao[1].add(1); 
      solucao[2].size(); 
      solucao[2].add(1); 
       solucao[3].size(); 
       solucao[3].add(1); 
      solucao[4].size(); 
      solucao[4].add(1); 
       solucao[5].size(); 
       solucao[5].add(1); 
      solucao[6].size(); 
      solucao[6].add(1); 
       solucao[7].size(); 
       solucao[7].add(1); 

所有尺寸爲回報null電話。任何人都知道如何解決它?

我正在尋找array of arraylists的數據結構,因爲每個array[i]的位置將返回我一個arraylist of integers

謝謝

+0

可以檢查這裏http://stackoverflow.com/questions/10227201/initialize-an-array-of-arraylist要精確的ArrayList [] solucao =(ArrayList的 [])新的ArrayList [10 ]。 – GustyWind

回答

0
ArrayList<Integer>[] solucao= new ArrayList[6]; 

應該是new ArrayList<Integer>[6]

注意一個IDE會給你一個關於此警告。接着,初始化數組的每個元素(爪哇7):

for(int i = 0; i < solucao.length; i++) { 
    solucao[i] = new ArrayList<>(); 
+0

在這種情況下,它實際上不應該是'new ArrayList [6]'。此外,每個循環都不適用於賦值。 – Zong

+0

@宗立重。第二是,你是對的,我的錯誤是錯誤的。回覆。第一,真的嗎?我應該學習模板+陣列如何工作。 – djechlin

3

你必須初始化陣列中的每個ArrayList

ArrayList[] solucao = new ArrayList[6]; 
for (int i = 0; i < solucao.length; i++) 
    solucao[i] = new ArrayList(); 

我實際上以爲你不能有一個ArrayList的數組。顯然你可以,但它必須是非通用的。你應該重新考慮你爲什麼這樣做...

0

數組只是指針或引用。對於他們的每一個你必須創建一個新的ArrayList對象,並在其中存儲數據。

List[] solucao= new ArrayList[5]; 
for(int i=0;i<solucao.length;i++) 
{ 
    solucao[i] = new ArrayList(); 
    solucao[i].add(yourObject); 
} 
0

對於存儲數據首先你必須創建對象。

ArrayList<Integer>[] ls = new ArrayList[7]; 
for (int i = 0; i < ls.length; i++) { 
    ls[i] = new ArrayList<Integer>(); 
    for(int j = 0 ; j<i ;j++){ 
     ls[i].add(j); 
    } 
    System.out.println(ls[i].size()); 
}