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 , ... 20 n = 10 n - 3 = 7 (остават 9 елемента в списъка) n - 2 = 8 (остават 8 елемента в списъка) n - 1 = 9 (остават 7 елемента в списъка) |
След премахване на 7-ми и 8-ми елемент в списъка ще останат само 8 елемента. Това означава, че няма да е възможно да изтриете 9-ия елемент - ще възникне грешка в програмата.
Ето правилния начин за премахване на елементите:
Опция 1 | Вариант 2 |
---|---|
|
|
Елементите трябва да бъдат премахнати or от края, or от друго последователно място, тъй като елементите се изместват с един след всяка операция по премахване.
GO TO FULL VERSION