Java 将元素添加到列表<;列表<;整数>&燃气轮机;
我想在列表中添加[1][1,2][1,2,3]等> 但如果我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
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]。]