嗨,我有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);
    }

最佳答案

只需使用addAllCollections.fill



list2.addAll(list1);
list3 = new ArrayList<ArrayList<Integer>>(list1.size());
Collections.fill(list3, list2);


请注意,list3将使用list2的相同实例填充。

这意味着对list2的每次更改都会反映在list3的每个元素中。

如果这不是您期望的行为,请遍历list1的长度并添加new ArrayList<Integer>(list2)

09-25 21:38