Uklanjanje elementa s popisa array

1. Pregled

U ovom uputstvu vidjet ćemo kako ukloniti elemente iz ArrayList u Javi koristeći različite tehnike. S obzirom na popis sportova, pogledajmo kako se možemo riješiti nekih elemenata sljedećeg popisa:

Navesti sports = new ArrayList (); sports.add ("Nogomet"); sports.add ("Košarka"); sports.add ("Baseball"); sports.add ("Boks"); sports.add ("Biciklizam");

2. ArrayList # ukloni

ArrayList ima dvije dostupne metode za uklanjanje elementa, donošenje indeksa elementa ukloniti ili prolazeći sam element ukloniti, ako je prisutan. Vidjet ćemo obje upotrebe.

2.1. Ukloni indeksom

Koristeći ukloniti prosljeđujući indeks kao parametar, možemo uklonite element na navedenom položaju na popisu i pomaknite sve slijedeće elemente ulijevo, oduzimajući jedan od njihovih indeksa. Nakon izvršenja, ukloniti metoda vratit će uklonjeni element:

sports.remove (1); // budući da indeks počinje na 0, to će ukloniti "Basketball" assertEquals (4, sports.size ()); assertNotEquals (sports.get (1), "Košarka");

2.2. Ukloni Element

Drugi način je da ukloniti prvu pojavu elementa sa popisa koristeći ovu metodu. Formalno govoreći, uklanjamo element s najmanjim indeksom ako postoji, ako ne, popis je nepromijenjen:

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

3. Uklanjanje tijekom iteriranja

Ponekad želimo ukloniti element iz ArrayList dok ga petljamo. Zbog ne generiranja a ConcurrentModificationException, trebamo koristiti Iterator razred kako bi to učinili kako treba.

Da vidimo kako možemo riješiti se elementa u petlji:

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

4. ArrayList # removeIf (JDK 8+)

Ako koristimo JDK 8 ili noviji verzije koje možemo iskoristiti ArrayList #ukloniAko koji uklanja sve elemente ArrayList koji zadovoljavaju zadani predikat.

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

Napokon, to možemo učiniti pomoću biblioteka treće strane poput Apache Commons i, ako želimo dublje, možemo vidjeti kako ukloniti sve određene pojave na učinkovit način.

5. Zaključak

U ovom smo tutorijalu pogledali razne načine uklanjanja elemenata s ArrayList-a u Javi.

Kao i obično, svi primjeri korišteni u ovom vodiču dostupni su na GitHubu.