0

这是行

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

波浪是一个

ArrayList<ArrayList<Integer>>

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

waves.get(index)

然后向它添加一个整数值

waves.get(index).add(anInt)

它将“anInt”添加到“waves”列表中的每个列表中。这真的是它的工作原理,还是我在代码中的其他地方搞砸了。

4

1 回答 1

1

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

我能想到的唯一合理的原因是所有添加到指向同一个对象的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);
于 2013-07-22T15:20:17.100 回答