Java将数据添加到嵌套数组

时间:2011-12-15 07:13:41

标签: java arraylist

如何使用相同的arraylist行将值添加到嵌套数组tableValues中,因为clear命令会删除行中的数据。

由于

    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);

2 个答案:

答案 0 :(得分:3)

我确定确实想要添加三个不同的 ArrayLists,因此请将每个row.clear()更改为:

row = new ArrayList<String>();

为什么希望“使用相同的arraylist行来添加值”?我不明白为什么你希望你的顶级ArrayList基本上包含三次相同的引用。为什么希望它们成为独立列表的引用?

答案 1 :(得分: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);
}

这种方式有当前添加的行的单个名称,但此变量的范围仅在给定的循环迭代内。