Fjerne et element fra en ArrayList

1. Oversikt

I denne opplæringen skal vi se hvordan du fjerner elementer fra en ArrayList i Java ved hjelp av forskjellige teknikker. Gitt en liste over idretter, la oss se hvordan vi kan bli kvitt noen elementer i følgende liste:

Liste sport = ny ArrayList (); sports.add ("Fotball"); sports.add ("Basketball"); sports.add ("Baseball"); sports.add ("Boksing"); sports.add ("Sykling");

2. ArrayList # fjern

ArrayList har to tilgjengelige metoder for å fjerne et element, passerer indeksen til elementet som skal fjernes, eller passerer selve elementet skal fjernes, hvis det er tilstede. Vi kommer til å se begge bruksområdene.

2.1. Fjern etter indeks

Ved hjelp av fjerne passerer en indeks som parameter, kan vi fjern elementet på den angitte posisjonen i listen og flytt eventuelle påfølgende elementer til venstre, og trekk en fra indeksene. Etter henrettelse, fjerne metoden returnerer elementet som er fjernet:

sports.remove (1); // siden indeks starter ved 0, vil dette fjerne "Basketball" assertEquals (4, sports.size ()); assertNotEquals (sports.get (1), "Basketball");

2.2. Fjern etter element

En annen måte er å fjern den første forekomsten av et element fra en liste ved hjelp av denne metoden. Formelt sett fjerner vi elementet med den laveste indeksen hvis det finnes, hvis ikke, er listen uendret:

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

3. Fjerne mens du klirrer

Noen ganger ønsker vi å fjerne et element fra en ArrayList mens vi sløyfer det. På grunn av ikke generere en ConcurrentModificationException, vi trenger å bruke Iterator klasse for å gjøre det ordentlig.

La oss se hvordan vi kan bli kvitt et element i en løkke:

Iterator iterator = sports.iterator (); mens (iterator.hasNext ()) {hvis (iterator.next (). tilsvarer ("Boxing")) {iterator.remove (); }}

4. ArrayList # removeIf (JDK 8+)

Hvis vi bruker JDK 8 eller høyere versjoner, kan vi dra nytte av ArrayList #fjerneHvis hvilken fjerner alle elementene i ArrayList som tilfredsstiller et gitt predikat.

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

Til slutt kan vi gjøre det ved hjelp av tredjepartsbiblioteker som Apache Commons, og hvis vi vil gå dypere, kan vi se hvordan vi kan fjerne alle spesifikke hendelser på en effektiv måte.

5. Konklusjon

I denne opplæringen så vi på de forskjellige måtene å fjerne elementer fra en ArrayList i Java.

Som vanlig er alle eksemplene som brukes i denne opplæringen, tilgjengelige på GitHub.


$config[zx-auto] not found$config[zx-overlay] not found