Java 添加到检索到的ArrayList

Java 添加到检索到的ArrayList,java,multidimensional-array,arraylist,indexing,Java,Multidimensional Array,Arraylist,Indexing,这是电话线 waves.get(selectedWave - 1).add(selectedMonster + selectedMosnterLevel); 波浪是一种 ArrayList<ArrayList<Integer>> 然后给它加一个整数值 waves.get(index).add(anInt) 它将“anInt”添加到“waves”列表中的每个列表中。这就是它的工作原理,或者我可能在代码的其他地方搞砸了 它将“anInt”添加到“waves”列表中的每个

这是电话线

waves.get(selectedWave - 1).add(selectedMonster + selectedMosnterLevel);
波浪是一种

ArrayList<ArrayList<Integer>>
然后给它加一个整数值

waves.get(index).add(anInt)
它将“anInt”添加到“waves”列表中的每个列表中。这就是它的工作原理,或者我可能在代码的其他地方搞砸了

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

我能想到的唯一可能的原因是,添加到
List
的所有
List
引用都指向相同的
List
对象。以下代码将导致此行为:

List<List<Integer>> waves = new ArrayList<>();
List<Integer> list1 = new ArrayList<>();
List<Integer> list2 = list1;
waves.add(list1);
waves.add(list1);
waves.add(list2);
List waves=new ArrayList();
List list1=新的ArrayList();
List list2=list1;
waves.add(列表1);
waves.add(列表1);
waves.add(列表2);

告诉我们你是如何填充
列表的。
你是在调用waves.get(index)循环吗?你在代码的其他地方搞砸了,当然。@pippin1289不只是在游戏中loop@TheNewIdiot这是我填充列表的方式,而不是其他方式
List<List<Integer>> waves = new ArrayList<>();
List<Integer> list1 = new ArrayList<>();
List<Integer> list2 = list1;
waves.add(list1);
waves.add(list1);
waves.add(list2);