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:
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 list
is een ArrayList
variabele. 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:
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:
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:
Stap 2: De waarde van de size
variabele wordt met 1 verlaagd.
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
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 |
---|---|
|
Maak een lijstobject Loop over alle indices 1 naar 20 Als de index deelbaar is door 2 zonder een rest, voeg deze dan toe aan de lijst |
Laten we nu alle elementen van de lijst op het scherm weergeven:
Code | Notities |
---|---|
|
Maak een lijstobject Loop over alle indices 1 naar 20 Als het getal deelbaar is door 2 zonder 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 |
---|---|
|
Maak een lijstobject Loop over alle indices 1 naar 20 Als de index deelbaar is door 2 zonder 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 4 zonder rest: a) verwijder het element b) verlaag de i teller 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 |
---|---|
|
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 |
---|---|
|
|
De elementen moeten vanaf het einde of vanaf een andere consistente locatie worden verwijderd, aangezien de elementen na elke verwijderingshandeling met één worden verschoven.
GO TO FULL VERSION