ArrayList add()函数覆盖所有元素(处理/ java)

时间:2019-05-12 21:10:12

标签: java arraylist processing shuffle

因此,我试图在一个for循环中将相同的ArrayList(结)洗牌50次,并将洗过的列表添加到另一个ArrayList(gen0)。但是每次我添加一个新的ArrayList时,它都会将所有现有ArrayList元素覆盖到我刚刚添加的同一ArrayList中,有人可以告诉我为什么吗?

ArrayList<ArrayList> seed(ArrayList<PVector> knots) {

  ArrayList<ArrayList> gen0 = new ArrayList<ArrayList>();
  for(int i=1; i<=50; i++) {

    Collections.shuffle(knots);

    gen0.add(knots);    
  }

  return gen0;
}```

1 个答案:

答案 0 :(得分:0)

您每次都将对同一chol2inv(chol(X))的引用改组。相反,请考虑在每次迭代时复制ArrayList

ArrayList