2011-12-15 81 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); 
} 

对于目前添加的行这有这样一个名字,但这个变量的范围只内给定周期的迭代。