Pet*_*ter 5 java list arraylist object
下面的代码:
List<List<Integer>> res = new ArrayList<>();
List<Integer> row = new ArrayList<>();
for (int i = 1; i <= 3; i++) {
row.add(i);
res.add(row);
}
Run Code Online (Sandbox Code Playgroud)
资源: [ [1,2,3],[1,2,3] ,[1,2,3]]
是这样写的:
for (int i = 1; i <= 3; i++) {
row.add(i);
res.add(new ArrayList<>(row));
}
Run Code Online (Sandbox Code Playgroud)
资源: [ [1],[1,2] ,[1,2,3]]
在第一种情况下,您只创建了 2 个对象(调用new
两次)。您已将第二个对象添加到前一个对象中 3 次,导致第二个对象在第一个对象中出现 3 次。
在第二种情况下,您创建了 5 个对象:res
、一个工作区row
以及row
在 3 个不同时刻拍摄的 3 个副本。将 3 个副本添加到res
.