2011-12-15 80 views
1

由於clear命令刪除行中的數據,因此如何使用相同的arraylist行將值添加到嵌套數組tableValues中。Java將數據添加到嵌套數組

感謝

ArrayList<ArrayList<String>> tableValues = new ArrayList<ArrayList<String>>(); 
    ArrayList<String> row = new ArrayList<String>(); 

    row.add("a"); 
    row.add("b"); 
    row.add("c"); 
    tableValues.add(row); 
    row.clear(); 

    row.add("d"); 
    row.add("e"); 
    row.add("f"); 
    tableValues.add(row); 
    row.clear(); 

    row.add("g"); 
    row.add("h"); 
    row.add("i"); 
    tableValues.add(row); 
    row.clear(); 

    System.out.println(tableValues); 

回答

3

我敢肯定,你真的添加三個不同的ArrayList,所以更改每個row.clear()到:

row = new ArrayList<String>(); 

爲什麼你會爲「使用相同的arraylist行來添加值「?我看不出爲什麼你想要頂級ArrayList基本上包含三次相同的參考。爲什麼你不是希望他們成爲獨立名單的參考?

+0

我的意思是我不想有row1,row2 row3等,因爲我不知道有多少行,所以這會導致問題:) – Ricco 2011-12-15 07:29:06

0

使用類似

ArrayList<String> row; 

row = new ArrayList<String>(); 
// fill row 
tableValues.add(row); 

row = new ArrayList<String>(); 
// fill row 
tableValues.add(row); 

這樣你就不會在每一行代碼的變量需要。 或把它放在週期

while(codnition) { // or for or do {} while(condition); 
    List<String> row = new ArrayList<String>(); 
    // fill row 
    table.add(row); 
} 

對於目前添加的行這有這樣一個名字,但這個變量的範圍只內給定週期的迭代。