【发布时间】:2016-04-09 05:26:35
【问题描述】:
代码段为:
ArrayList<ArrayList<Integer>> outer = new ArrayList<ArrayList<Integer>>();
ArrayList<Integer> inner = new ArrayList<Integer>();
int count = 0;
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 3; j++) {
count++;
inner.add(count);
}
outer.add(inner);
}
System.out.println(outer);
我像这样跟踪循环:
当i = 0 时,内部将更新为[1, 2, 3]。因此outer 将是[[1, 2, 3]]。
i = 1 时,inner 将更新为 [1, 2, 3, 4, 5, 6]。因此output 即outer 将是[[1, 2, 3], [1, 2, 3, 4, 5, 6]]
但是,当我运行程序时,output 实际上是[[1, 2, 3, 4, 5, 6], [1, 2, 3, 4, 5, 6]]。
为什么会这样?
谢谢
我已经编辑了代码
【问题讨论】:
-
您每次都添加相同的数组。
-
代码完全没用。您一直在将
inner添加到inner(甚至无法编译,因为inner不是整数,因此不适合自身),而不添加其他内容。从来没有添加任何数字。所以你说的不适合你的代码。修复你的代码。 -
为什么要将
inner添加到inner?请尝试至少思考 -
很抱歉我打错了
-
这是否增加了
inner数组列表和size的每个迭代3 个像[1,2,3], [1,2,3,4,5,6],[1,2,3,4,5,6,7,8,9]
标签: java arraylist nested-loops