Java 将元素添加到列表<;列表<;整数>&燃气轮机;

Java 将元素添加到列表<;列表<;整数>&燃气轮机;,java,Java,我想在列表中添加[1][1,2][1,2,3]等> 但如果我 List<Integer> w = new ArrayList<Integer>(); List<List<Integer>> a = new ArrayList<ArrayList<Integer>>(); for(int i=1;i<n; i++){ w.add(i); a.add(w); } List w=ne

我想在列表中添加[1][1,2][1,2,3]等> 但如果我

  List<Integer> w = new ArrayList<Integer>();
  List<List<Integer>> a = new ArrayList<ArrayList<Integer>>();
  for(int i=1;i<n; i++){
      w.add(i);
      a.add(w);
  }
List w=new ArrayList();
列表a=新的ArrayList();

对于(int i=1;i我假设我命名的第二个列表是
a
而不是
w
。所以这里的问题是,你应该制作一个添加到列表列表中的列表的深度副本。否则你使用的是同一个对象。只需添加
a.add(new ArrayList(w))
我想这就是你要找的:

List<Integer> w = new ArrayList<Integer>();
List<ArrayList<Integer>> a = new ArrayList<ArrayList<Integer>>(); //Use Arraylist inside

for(int i=1;i<10; i++){
    w.add(i);
    a.add(new ArrayList(w));
}

System.out.println(w);
System.out.println(a);
List w=new ArrayList();
List a=new ArrayList();//在内部使用ArrayList

对于(inti=1;i,您可以使用以下公式

List<List<Integer>> a = new ArrayList();
for(int i=1;i<10; i++){
    // your logic here make use of Arrays.asList()
    a.add(Arrays.asList(i, i+1));
}
List a=new ArrayList();

对于(int i=1;i您的代码不完整。您正在定义
w
两次在将
w
添加到
a
之前,将
w
的副本添加到
a
列表
将不起作用,并且将同一数组添加到列表n次可能不是您想要做的事情。是否希望为要添加的循环和不同数组嵌套要列出?您的代码不可编译,您不能将
new ArrayList()
分配给
list a
。相反,请使用
list a=new ArrayList();
。今后,请确保只发布您知道要正确编译的代码。非常感谢,new list(w)是否克隆?对。它创建了一个包含原始集合中元素的新列表对象。如果要添加
a.add(w),为什么我们不能直接使用
a.add(w)
而不是
a.add(w))
它将在列表a的所有元素中添加对列表w的引用,并且由于您不断更改列表w,通过添加更多的数字,列表中的所有元素将指向相同的w,因此将包含如下内容
[[1,2,3,4,5,6,6,7,8,9],[1,2,3,4,5,6,7,8,9],[1,2,3],[1,2,3],[1,2,4,6,7,9]。]