1. Een element toevoegen aan het midden (of aan het begin) van een lijst

Als we een element in het midden van de lijst willen invoegen, gebeurt het volgende in de lijst.

Stel dat we een lijst van 11 elementen hebben:

Een element toevoegen aan het midden (of aan het begin) van een lijst

We willen het getal 10.000 invoegen in de lijst bij index 5. Om dit te doen, hoeven we alleen maar uit te voeren:

list.add(5, 10000);

Waar listis een ArrayListvariabele. De add(int index, type value)methode voegt de waarde 10000 toe op positie 5 in de lijst. Dit is wat er gebeurt in de add()methode:

Stap 1: Alle elementen van de array, beginnend vanaf de 5e positie, worden verschoven (gekopieerd) met 1 element naar het einde van de array:

Een element toevoegen aan het midden (of aan het begin) van een lijst 1

Merk op dat de elementen in de 5e en 6e cel van de array nu hetzelfde zijn.

Stap 2: Schrijf de waarde 10.000 in de 5e cel:

Een element toevoegen aan het midden (of aan het begin) van een lijst 2

Nu bevat de lijst alle elementen van de array en de vijfde cel bevat het getal 10.000. Precies wat we wilden.



2. Een element uit een lijst verwijderen

Het verwijderen van een element uit een lijst is vergelijkbaar met het invoegen, maar het proces is omgekeerd.

Laten we het derde element uit een lijst verwijderen. Om dit te doen, moeten we uitvoeren:

list.remove(3);

Dit is wat er gebeurt in de remove() methode:

Stap 1: De elementen van de array, beginnend vanaf de 4e positie, worden met 1 element verschoven (gekopieerd) naar het begin van de array:

Een element uit een lijst verwijderen

Stap 2: De waarde van de sizevariabele wordt met 1 verlaagd.

Een element uit een lijst verwijderen 2

Houd er rekening mee dat er aan het einde van de array enkele grijsgekleurde waarden zijn. Technisch gezien zijn dit rommel. Ze moeten worden verwijderd om de afvalinzameling niet te hinderen .

Stap 3: Afval opruimen

Een element uit een lijst verwijderen 3



3. Praktijkvoorbeelden van het werken met een lijst in Java

Laten we enkele voorbeelden opschrijven van het werken met lijsten:

We zullen alle even getallen in het bereik van 1 tot 20 opsommen:

Code Notities
ArrayList<Integer> list = new ArrayList<Integer>();

for (int i = 1; i <= 20; i++)
   if (i%2 == 0)
      list.add(i);
Maak een lijstobject

Loop over alle indices 1naar 20
Als de index deelbaar is door 2zonder een rest,
voeg deze dan toe aan de lijst

Laten we nu alle elementen van de lijst op het scherm weergeven:

Code Notities
ArrayList<Integer> list = new ArrayList<Integer>();

for (int i = 1; i <= 20; i++)
   if (i%2 == 0)
      list.add(i);

for (int i = 0; i < list.size(); i++)
   System.out.println(list.get(i));
Maak een lijstobject
Loop over alle indices 1naar 20

Als het getal deelbaar is door 2zonder een rest,
voeg het dan toe aan de lijst

Loop van nul tot de grootte van de lijst
Toon elk element op het scherm

Elementen verwijderen:

Laten we nu alle elementen verwijderen die deelbaar zijn door 4. Merk op dat na het verwijderen van een element uit de lijst, de posities van de resterende elementen onmiddellijk veranderen.

Code Notities
ArrayList<Integer> list = new ArrayList<Integer>();

for (int i = 1; i <= 20; i++)
   if (i%2 == 0)
      list.add(i);

for (int i = 0; i < list.size(); i++)
   if (list.get(i)%4 == 0)
   {
      list.remove(i);
      i--;
   }
Maak een lijstobject

Loop over alle indices 1naar 20
Als de index deelbaar is door 2zonder rest,
voeg het dan toe aan de lijst

Loop van nul tot de grootte van de lijst
Als een element van de lijst deelbaar is door 4zonder rest:

a) verwijder het element
b) verlaag de iteller zodat we dezelfde index krijgen bij de volgende iteratie van de lus

Stel dat u de laatste 3 elementen uit een lijst moet verwijderen.

Hier leest u hoe u dat verkeerd doet:

Code Notities
ArrayList<Integer> list = new ArrayList<Integer>();

for (int i = 1; i <= 20; i++)
   if (i%2 == 0)
      list.add(i);

int n = list.size();
list.remove(n - 3);
list.remove(n - 2);
list.remove(n - 1);
Maak een lijstobject

De lijst heeft 10 elementen: 2, 4, 6, ... 20



n = 10
n - 3 = 7(er zijn nog 9 elementen in de lijst)
n - 2 = 8(er zijn nog 8 elementen in de lijst)
n - 1 = 9(er zijn nog 7 elementen in de lijst)

Na het verwijderen van het 7e en 8e element blijven er slechts 8 elementen over in de lijst. Dat betekent dat het niet mogelijk is om het 9e element te verwijderen — er zal een fout optreden in het programma.

Dit is de juiste manier om de elementen te verwijderen:

Optie 1 Optie 2
int n = list.size();
list.remove(n - 3);
list.remove(n - 3);
list.remove(n - 3);
int n = list.size();
list.remove(n - 1);
list.remove(n - 2);
list.remove(n - 3);

De elementen moeten vanaf het einde of vanaf een andere consistente locatie worden verwijderd, aangezien de elementen na elke verwijderingshandeling met één worden verschoven.