Mur*_*pps 0 java arraylist multidimensional-array
所以我正在创建一个方法来改组一组数字,我的想法是创建这些数字的总体.所以我创建了一个循环,它将数字混合,然后将它添加到一个arraylist,但是在一些调试语句之后,我发现它确实对数字进行了洗牌,但只是将最后一个shuffle添加到了arrayList.任何人都可以帮我找出原因吗?
如果有人想知道,solutionList是代码中的arraylist
for(int k =0;k <100; k++){
Collections.shuffle(solutionList);
population2.add(new Object[]{solutionList}) ;
System.out.println("In the loop " + solutionList);
}
for(Object[] row : population2){
System.out.println("Row = " + Arrays.toString(row));
}
Run Code Online (Sandbox Code Playgroud)
每个元素population2都是一个引用相同 的数组ArrayList.如果需要不同的列表,则需要为每次迭代创建一个新列表.
例如,为了避免每次使用正确的数字填充列表,您可以随机播放solutionList然后添加对副本的引用:
for (int k = 0; k < 100; k++) {
Collections.shuffle(solutionList);
List<Integer> copy = new ArrayList<Integer>(solutionList);
population2.add(new Object[]{ copy });
}
Run Code Online (Sandbox Code Playgroud)