2013-09-10 3 views
1

У меня есть ArrayList, и я собирался использовать метод java.util.ArrayList.remove() в android, но мой вопрос в том, есть ли у вас ArrayList, который имеет значения по следующим индексам, а затем удаляет по индексу, натолкнулся на индекс? Вот простой способ понять, что я пытаюсь спросить:Удалить и переупорядочить в arraylist

 
Starting Arraylist: 
------------------------ 
| Index | Value | 
------------------------ 
| 0  | "a" | 
| 1  | "b" | 
| 2  | "c" | 
| 3  | "d" | 
| 4  | "e" | 
------------------------ 

Затем я удаляю с индексом 3 будет новый массив будет массив А или массив B

 
Arraylist A:    Arraylist B: 
------------------------ ------------------------ 
| Index | Value | | Index | Value | 
------------------------ ------------------------ 
| 0  | "a" | | 0  | "a" | 
| 1  | "b" | | 1  | "b" | 
| 2  | "c" | | 2  | "c" | 
| 3  |   | | 3  | "e" | 
| 4  | "e" | ------------------------ 
------------------------ 
+4

Почему вы просто не попробовали? Конечно, заняло бы меньше времени, чем размещать его здесь. –

ответ

5

Это будет B, Если вы измените арраист, используя индексные операции, ArrayList будет перегруппирован, как вы поняли. Вот почему ArrayLists являются дорогостоящими, если есть слишком много модификаций

Это то, что remove(int) документация говорит

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

0

Ваш ArrayList будет как ваш B пример.

Именно так работает ArrayList, они перестраиваются.

0

Если вам нужно что-то подобное, никто не столкнется с вашим удаленным положением, попробуйте вставить нулевой объект в эту позицию, он будет удерживать позицию для этой цели.

На самом деле лучшим решением является создание фиктивного объекта, который является вашей версией нулевого объекта java. Но этот фиктивный объект даст вам гибкость, чтобы добавить некоторые функции для поддержки вашей логики и потока программ.

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