2013-07-22 4 views
0

Вот строкеДобавление к извлекаемым ArrayLists

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

волны является

ArrayList<ArrayList<Integer>> 

что означает, что имеет место других списков целых чисел. Моя проблема в том, что, когда я получить конкретный список Целого путем вызова

waves.get(index) 

, а затем добавить значение Integer к нему

waves.get(index).add(anInt) 

добавляет «anInt» для каждого отдельного списка, который присутствует в списке «волны». Неужели это так, как это работает, или я могу прикрутить где-то еще в моем коде.

+0

Покажите нам, как вы заполняете «Список». – NINCOMPOOP

+0

Вы вызываете wave.get (index) в цикле? – pippin1289

+1

вы наверняка закручиваете где-то еще в своем коде. – Juvanis

ответ

1

он добавляет «anInt» к каждому списку, который присутствует в списке «волны».

Единственная вероятная причина, я могу думать о том, что все 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); 
+1

Ну, я всего лишь добавляю один раз в список ... –

Смежные вопросы