Elem eltávolítása egy ArrayList-ből

1. Áttekintés

Ebben az oktatóanyagban megnézzük, hogyan lehet eltávolítani az elemeket az Tömb lista Java-ban különböző technikák alkalmazásával. Adott egy sportlista, nézzük meg, hogyan tudunk megszabadulni a következő lista néhány elemétől:

Sportlista = new ArrayList (); sports.add ("Labdarúgás"); sports.add ("Kosárlabda"); sport.add ("Baseball"); sports.add ("Boksz"); sports.add ("Kerékpározás");

2. ArrayList # eltávolítás

Tömb lista két elérhető módja van egy elem eltávolítására, átadva az elem indexét eltávolítandó, vagy maga az elem átadása eltávolítani, ha van. Meglátjuk mindkét felhasználást.

2.1. Eltávolítás index segítségével

Használata eltávolítani index átadása paraméterként megtehetjük távolítsa el az elemet a megadott helyen a listában, és a későbbi elemeket tolja balra, kivonva egyet az indexükből. Végrehajtás után eltávolítani A metódus az eltávolított elemet adja vissza:

sport.távolítsa el (1); // mivel az index 0-nál kezdődik, ez eltávolítja a "Basketball" assertEquals (4, sports.size ()); assertNotEquals (sport.get (1), "Kosárlabda");

2.2. Eltávolítás elem által

Egy másik út az távolítsa el az elem első előfordulását a listáról ezzel a módszerrel. Formálisan nézve eltávolítjuk a legalacsonyabb indexű elemet, ha van, ha nem, akkor a lista nem változik:

sport.remove ("Baseball"); assertEquals (4, sport.méret ()); assertFalse (sport.tartalmaz ("Baseball"));

3. Eltávolítás iterálás közben

Néha el akarunk távolítani egy elemet egy Tömb lista amíg hurkoljuk. Mivel nem generál a ConcurrentModificationException, használnunk kell Iterátor osztály, hogy megfelelően csinálja.

Lássuk, hogyan tudunk megszabadulni egy hurok elemétől:

Iterátor iterátor = sport.iterátor (); while (iterator.hasNext ()) {if (iterator.next (). egyenlő ("Boxing")) {iterator.remove (); }}

4. ArrayList # removeIf (JDK 8+)

Ha használjuk JDK 8 vagy magasabb változatokat, kihasználhatjuk Tömb lista#removeIf melyik eltávolítja a Tömb lista amelyek kielégítik az adott állítmányt.

sport.removeIf (p -> p.egyenlő ("Kerékpározás")); assertEquals (4, sport.méret ()); assertFalse (sport.tartalmaz ("Kerékpározás"));

Végül megtehetjük harmadik fél könyvtárak, például az Apache Commons segítségével, és ha mélyebbre akarunk kerülni, láthatjuk, hogyan lehet hatékonyan eltávolítani az összes konkrét eseményt.

5. Következtetés

Ebben az oktatóanyagban megvizsgáltuk az elemek eltávolításának különféle módjait a Java ArrayList-jéből.

Szokás szerint az oktatóanyagban használt összes példa elérhető a GitHubon.