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

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

Зверніть увагу: елементи у 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, ... 20n = 10n - 3 = 7 (у списку залишилося 9 елементів)n - 2 = 8 (у списку залишилося 8 елементів)n - 1 = 9 (у списку залишилося 7 елементів) |
Після видалення 7 і 8 елементів, у списку залишиться всього 8 елементів. Тому 9-й елемент видалити не вдасться — у програмі виникне помилка.
Як потрібно було видалити елементи:
| Варіант 1 | Варіант 2 |
|---|---|
|
|
Елементи потрібно або видаляти з кінця, або просто в одному і тому ж місці, а після кожного видалення елементи зсуваються на один.