嗨,我有ArrayLists的问题,我有3个列表
ArrayList1<Integer>=[1,2,3]
ArrayList2<Integer>=[]
ArrayList3<ArrayList<Integer>>=[]
ArrayList1元素用于将值添加到ArrayList2
例如
for(int i:ArrayList1)
{
for(int a=0;a<i;a++)
{
ArrayList2.add(a);
}
}
并且工作正常,没有问题,但是现在我想为ArrayList1中的每个元素添加ArrayList2到ArrayList3,这是我想出的,但它不起作用
for(int i:ArrayList1)
{
for(int a=0;a<i;a++)
{
ArrayList2.add(a);
}
ArrayList3.add(ArrayList2);
}
最佳答案
只需使用addAll
和Collections.fill
。
例
list2.addAll(list1);
list3 = new ArrayList<ArrayList<Integer>>(list1.size());
Collections.fill(list3, list2);
请注意,
list3
将使用list2
的相同实例填充。这意味着对
list2
的每次更改都会反映在list3
的每个元素中。如果这不是您期望的行为,请遍历
list1
的长度并添加new ArrayList<Integer>(list2)
。