Een element verwijderen uit een ArrayList

1. Overzicht

In deze zelfstudie gaan we zien hoe u elementen uit een ArrayList in Java met behulp van verschillende technieken. Laten we, gegeven een lijst met sporten, eens kijken hoe we enkele elementen van de volgende lijst kunnen verwijderen:

Lijst sporten = nieuwe ArrayList (); sports.add ("Voetbal"); sports.add ("Basketbal"); sports.add ("Honkbal"); sports.add ("Boksen"); sports.add ("Fietsen");

2. ArrayList # verwijderen

ArrayList heeft twee beschikbare methoden om een ‚Äč‚Äčelement te verwijderen, het passeren van de index van het element te verwijderen, of het passeren van het element zelf worden verwijderd, indien aanwezig. We gaan beide gebruiken zien.

2.1. Verwijderen via Index

Gebruik makend van verwijderen door een index als parameter door te geven, kunnen we verwijder het element op de aangegeven positie in de lijst en verschuif alle volgende elementen naar links, waarbij u er een aftrekt van hun indices. Na executie, verwijderen methode retourneert het element dat is verwijderd:

sports.remove (1); // aangezien index begint bij 0, zal dit "Basketball" assertEquals (4, sports.size ()) verwijderen; assertNotEquals (sports.get (1), "Basketball");

2.2. Verwijderen op element

Een andere manier is om verwijder het eerste exemplaar van een element uit een lijst met behulp van deze methode. Formeel gesproken verwijderen we het element met de laagste index indien aanwezig, zo niet, dan is de lijst ongewijzigd:

sports.remove ("Honkbal"); assertEquals (4, sports.size ()); assertFalse (sports.contains ("Baseball"));

3. Verwijderen tijdens itereren

Soms willen we een element verwijderen uit een ArrayList terwijl we het herhalen. Vanwege het niet genereren van een ConcurrentModificationException, we moeten gebruiken Iterator klasse om het goed te doen.

Laten we eens kijken hoe we dat kunnen doen verwijder een element in een lus:

Iterator iterator = sports.iterator (); while (iterator.hasNext ()) {if (iterator.next (). equals ("Boxing")) {iterator.remove (); }}

4. ArrayList # removeIf (JDK 8+)

Als we gebruiken JDK 8 of hoger versies waarvan we kunnen profiteren ArrayList #removeIf welke verwijdert alle elementen van de ArrayList die voldoen aan een bepaald predikaat.

sports.removeIf (p -> p.equals ("Cycling")); assertEquals (4, sports.size ()); assertFalse (sports.contains ("Cycling"));

Ten slotte kunnen we het doen met behulp van bibliotheken van derden, zoals Apache Commons, en als we dieper willen gaan, kunnen we zien hoe we alle specifieke gebeurtenissen op een efficiënte manier kunnen verwijderen.

5. Conclusie

In deze tutorial hebben we gekeken naar de verschillende manieren om elementen uit een ArrayList in Java te verwijderen.

Zoals gewoonlijk zijn alle voorbeelden die in deze tutorial worden gebruikt, beschikbaar op GitHub.