2016-06-28 3 views
-6

Я создаю ArrayList с 500 нулевых Целые в нем, так что я могу добавить значение в зависимости от того, позиция, которую я хочу:переменной происходит в неправильном положении в ArrayList

ArrayList<Integer> array = new ArrayList<>(); 
array.addAll(Arrays.asList(new Integer[500])); 

Моя проблема в том, когда я добавить Integer в 8-й позиции он подталкивает все целые числа, которые после него доходят до следующей позиции. Пример: у меня есть целое число в позиции 5 и другое в позиции 8, если я добавлю его в позицию 7, тот, который находился в позиции 8, переместился в позицию 9. Этот эффект разрушает мой цикл.

Добавление: array.add(position, mInt);

Может кто-то помочь?

+0

Что относительно того, который уже был в положении 9? – Blackbelt

+0

Какое поведение вы бы предпочли? Вы хотите «установить» индекс вместо его перемещения? – Zircon

+0

@Blackbelt переходит к 10-му –

ответ

2

Если вы хотите переписать целое число в заданной позиции, используйте set(index, data) вместо add.

add для добавления данных в массив, поэтому он не будет заменить один выход, из Javadocs:

Вставки указанный элемент в указанной позиции в этом списке (дополнительная работа). Сдвигает элемент в данный момент (если есть) и любые последующие элементы справа (добавляет один к их индексам).

set для замены существующих данных по заданному индексу с новыми данными, от Javadoc:

Заменяет элемент в указанной позиции в этом списке с указанным элементом (дополнительная работа).

0

Моя проблема в том, когда я добавить Integer в 8-м положения, он толкает все числа, которые после этого на следующую позицию.

Это exaclty как добавить() работает:

Вставляет указанный элемент в указанной позиции в этом списке. Сдвигает элемент, находящийся в данный момент (если есть), и любые последующие элементы справа (добавляет один к их индексам) .

http://docs.oracle.com/javase/7/docs/api/java/util/ArrayList.html#add(int,%20E)

Если вы wanto изменения в месте, используйте set() вместо:

Заменяет элемент в указанной позиции в этом списке с указанного элемента.

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