如何使用相同的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);
答案 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);
}
这种方式有当前添加的行的单个名称,但此变量的范围仅在给定的循环迭代内。