正在添加到检索到的ArrayLists



这是行

waves.get(selectedWave - 1).add(selectedMonster + selectedMosnterLevel);

波浪是一种

ArrayList<ArrayList<Integer>>

这意味着它包含其他整数列表。我的问题是,当我通过调用检索特定的整数列表时

waves.get(index)

然后在上加一个整数值

waves.get(index).add(anInt)

它将"anInt"添加到"waves"列表中的每个列表中。这真的是它的工作方式吗,或者我可能在代码的其他地方搞砸了。

它将"anInt"添加到"waves"列表中的每个列表中。

我能想到的唯一合理的原因是,添加到List<List<Integer>>的所有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);