这是
行waves.get(selectedWave - 1).add(selectedMonster + selectedMosnterLevel);
wave是一个
ArrayList<ArrayList<Integer>>
表示它包含其他整数列表。我的问题是,当我通过调用
检索特定的整数列表时waves.get(index)
然后向其添加一个Integer值
waves.get(index).add(anInt)
它为每个列表添加“anInt”,它存在于“wave”列表中。这真的是它的工作原理,或者我可能会在我的代码中的其他地方搞砸了。
答案 0 :(得分:1)
它为每个列表添加“anInt”,它存在于“wave”列表中。
我能想到的唯一合理的原因是添加到List<Integer>
的所有List<List<Integer>>
引用都指向同一个List<Integer>
对象。以下代码将导致此行为:
List<List<Integer>> waves = new ArrayList<>();
List<Integer> list1 = new ArrayList<>();
List<Integer> list2 = list1;
waves.add(list1);
waves.add(list1);
waves.add(list2);