这是行
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);