1. Додавання елемента в середину (або в початок) списку
Якщо ж ми хочемо вставити елемент в середину списку, то всередині списку відбувається от що.
Припустімо, у нас є список з 11 елементів:

Ми хочемо вставити число 10 000 у список на позицію з номером 5. Для цього потрібно лише виконати команду:
list.add(5, 10000);
де list
— це змінна типу ArrayList
, метод add(int index, тип value)
додає значення 10000 на позицію 5 у списку. От що в цьому разі відбудеться в методі add()
:
Крок 1: усі елементи масиву починаючи з 5-го буде зсунуто (скопійовано) на 1 елемент у напрямку кінця масиву:

Зверніть увагу: елементи в 5-й і 6-й комірках масиву тепер однакові.
Крок 2: записуємо в 5-у комірку значення 10 000:

Тепер у списку є всі елементи масиву, а в п'ятій комірці записано число 10 000, як ми й хотіли.
2. Видалення елемента зі списку
Операція видалення елемента зі списку аналогічна його додаванню, тільки процес зворотний.
Давайте видалимо зі списку елемент із номером 3. Для цього потрібно виконати команду:
list.remove(3);
От що в цьому разі відбудеться в методі remove():
Крок 1: елементи масиву починаючи з 4-го буде зсунуто (скопійовано) на одну позицію ближче до початку масиву:

Крок 2: значення змінної size
буде зменшено на 1.

Зверніть увагу: кінець масиву виділено сірим кольором, і там є якісь значення. З технічного погляду це сміття. Його треба видалити, щоб не заважати процесу збирання сміття.
Крок 3: видалення сміття

3. Практичні приклади роботи зі списком у Java
Напишімо кілька прикладів роботи зі списками.
Занесімо до списку всі парні числа від 1 до 20:
Код | Примітки |
---|---|
|
Створюємо об'єкт-список Цикл по всіх числах 1 .. 20 Якщо число ділиться на 2 без остачі,додати його до списку |
А тепер виведімо всі елементи списку на екран:
Код | Примітки |
---|---|
|
Створюємо об'єкт-список Цикл по всіх числах 1 .. 20 Якщо число ділиться на 2 без остачі,додати його до списку Цикл від нуля до розміру списку Виводимо кожний елемент на екран |
Видалення елементів:
А тепер видалімо всі елементи, які діляться на 4. Зверніть увагу, що відразу після видалення одного елемента зі списку позиції решти елементів змінюються.
Код | Примітки |
---|---|
|
Створюємо об'єкт-список Цикл по всіх числах 1 .. 20 Якщо число ділиться на 2 без остачі,додати його до списку Цикл від нуля до розміру списку Якщо елемент списку ділиться на 4 без остачі:а) видаляємо елемент б) зменшуємо лічильник i , щоб на наступному витку циклу знову потрапити на той самий елемент |
Припустімо, вам потрібно видалити 3 останніх елементи списку.
Як зробити це неправильно:
Код | Примітки |
---|---|
|
Створюємо об'єкт-список У списку 10 елементів: 2 , 4 , 6 , ... 20 n = 10 n - 3 = 7 (у списку залишилось 9 елементів)n - 2 = 8 (у списку залишилось 8 елементів)n - 1 = 9 (у списку залишилось 7 елементів) |
Після видалення 7-го й 8-го елементів у списку залишиться всього 8 елементів. Тому 9-й елемент видалити не вдасться — у програмі виникне помилка.
Як видаляти елементи правильно:
Варіант 1 | Варіант 2 |
---|---|
|
|
Елементи потрібно видаляти або з кінця або просто в одному й тому самому місці, а після кожного видалення елементи зсуватимуться на одну позицію.
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ