1. Добавяне на елемент в средата (or в началото) на списък
Ако искаме да вмъкнем елемент в средата на списъка, ето Howво се случва вътре в списъка.
Да предположим, че имаме списък от 11 елемента:

Искаме да вмъкнем числото 10 000 в списъка при индекс 5. За да направим това, просто трябва да изпълним:
list.add(5, 10000);
Къде listе ArrayListпроменлива. Методът add(int index, type value)добавя стойност 10000 на позиция 5 в списъка. Ето Howво се случва в add()метода:
Стъпка 1: Всички елементи на масива, започвайки от 5-та позиция, ще бъдат изместени (копирани) с 1 елемент към края на масива:

Обърнете внимание, че елементите в 5-та и 6-та клетка на масива вече са еднакви.
Стъпка 2: Напишете стойността 10 000 в 5-та клетка:

Сега списъкът съдържа всички елементи на масива, а петата клетка съдържа числото 10 000. Точно това, което искахме.
2. Премахване на елемент от списък
Премахването на елемент от списък е подобно на вмъкването му, но процесът е обратен.
Нека премахнем третия елемент от списък. За да направим това, трябва да изпълним:
list.remove(3);
Ето Howво се случва в метода remove():
Стъпка 1: Елементите на масива, започвайки от 4-та позиция, ще бъдат изместени (копирани) с 1 елемент към началото на масива:

Стъпка 2: Стойността на sizeпроменливата ще бъде намалена с 1.

Моля, обърнете внимание, че в края на масива има някои стойности, оцветени в сиво. Технически това са боклуци. Те трябва да бъдат премахнати, за да не пречат на сметосъбирането .
Стъпка 3: Почистване на боклука

3. Практически примери за работа със списък в Java
Нека напишем няколко примера за работа със списъци:
Ще изброим всички четни числа в диапазона от 1 до 20:
| Код | Бележки |
|---|---|
|
Създайте обект от списък Превъртете всички индекси 1до 20Ако индексът се дели на 2без остатък, добавете го към списъка |
Сега нека покажем всички елементи от списъка на екрана:
| Код | Бележки |
|---|---|
|
Създаване на списъчен обект Превъртете всички индекси 1до 20Ако числото се дели на 2без остатък, добавете го към списъка Превъртете от нула до размера на списъка Показване на всеки елемент на екрана |
Премахване на елементи:
Сега нека премахнем всички елементи, които се делят на 4. Имайте предвид, че след премахване на елемент от списъка, позициите на останалите елементи веднага се променят.
| Код | Бележки |
|---|---|
|
Създайте обект от списък Превъртете всички индекси 1до 20Ако индексът се дели на 2без остатък, добавете го към списъка Превъртете от нула до размера на списъка Ако елемент от списъка се дели на 4без остатък: a) премахнете елементът b) намалява iброяча, така че да получим същия индекс при следващата итерация на цикъла |
Да приемем, че трябва да премахнете последните 3 елемента от списък.
Ето How да направите това неправилно:
| Код | Бележки |
|---|---|
|
Създайте обект от списък Списъкът има 10 елемента: 2, 4, 6, ... 20n = 10n - 3 = 7(остават 9 елемента в списъка) n - 2 = 8(остават 8 елемента в списъка) n - 1 = 9(остават 7 елемента в списъка) |
След премахване на 7-ми и 8-ми елемент в списъка ще останат само 8 елемента. Това означава, че няма да е възможно да изтриете 9-ия елемент - ще възникне грешка в програмата.
Ето правилния начин за премахване на елементите:
| Опция 1 | Вариант 2 |
|---|---|
|
|
Елементите трябва да бъдат премахнати or от края, or от друго последователно място, тъй като елементите се изместват с един след всяка операция по премахване.
GO TO FULL VERSION