ArrayList er en del af indsamlingsramme og er til stede i java.util-pakken. Det giver os dynamiske arrays i Java. Det kan dog være langsommere end standard arrays, men det kan være nyttigt i programmer, hvor der er behov for masser af manipulation i arrayet. Denne klasse findes i java.util pakke. Med introduktionen og opgraderingerne i java-versioner bliver nyere metoder tilgængelige, hvis vi ser fra Java8, at perceptive lambda-udtryk og streams-koncepter ikke var tilgængelige før det, da det blev introduceret i java version8, så har vi flere måder at operere over Arraylist for at udføre operationer. Her vil vi diskutere en måde at fjerne et element fra en ArrayList.
Mens vi fjerner elementer fra ArrayList, kan vi enten arbejde for at fjerne elementer over indekser eller via værdier været der i en ArrayList. Vi vil diskutere begge veje via tolkning gennem et rent java-program.
Metoder:
Der er 3 måder at fjerne et element fra ArrayList som listet, som senere vil blive afsløret som følger:
- Brug af metoden remove() af indexes(standard)
- Brug af metoden remove() efter værdier
- Bruger metoden remove() over iteratorer
Bemærk: Det anbefales ikke at bruge ArrayList.remove() ved iteration over elementer.
Metode 1: Bruger metoden remove() af indekser
Det er en standardmetode, så snart vi bruger en metode over datastruktur, fungerer den grundlæggende kun over indekser, så når vi bruger remove()-metoden, fjerner vi grundlæggende elementer fra indekser fra en ArrayList.
ArrayList klasse giver to overbelastede remove() metoder.
- remove(int index): Accepterer indekset for det objekt, der skal fjernes
- remove(Object obj): Accepterer det objekt, der skal fjernes
Lad os finde ud af det ved hjælp af eksempler, der er givet nedenfor som følger:
Eksempel:
fortryd sidste commit
Java
homogen blanding
// Java program to Remove Elements from ArrayList> // Using remove() method by indices> > // Importing required classes> import> java.util.ArrayList;> import> java.util.List;> > // Main class> public> class> GFG {> >// Main driver method> >public> static> void> main(String[] args)> >{> >// Creating an object of List interface with> >// reference to ArrayList class> >List al =>new> ArrayList();> > >// Adding elements to our ArrayList> >// using add() method> >al.add(>10>);> >al.add(>20>);> >al.add(>30>);> >al.add(>1>);> >al.add(>2>);> > >// Printing the current ArrayList> >System.out.println(al);> > >// This makes a call to remove(int) and> >// removes element 20> >al.remove(>1>);> > >// Now element 30 is moved one position back> >// So element 30 is removed this time> >al.remove(>1>);> > >// Printing the updated ArrayList> >System.out.println(al);> >}> }> |
>
>Produktion
[10, 20, 30, 1, 2] [10, 1, 2]>
Nu har vi set fjerne elementer i en ArrayList via indekser ovenfor, lad os nu se, at den beståede parameter betragtes som et indeks. Sådan fjerner du elementer efter værdi.
Metode 2: Brug af metoden remove() efter værdier
visninger og tabeller
Eksempel:
Java
// Java program to Remove Elements from ArrayList> // Using remove() method by values> > // Importing required classes> import> java.util.ArrayList;> import> java.util.List;> > // Main class> public> class> GFG {> >// Main driver method> >public> static> void> main(String[] args)> >{> >// Creating an object of List interface with> >// reference to ArrayList> >List al =>new> ArrayList();> > >// Adding elements to ArrayList class> >// using add() method> >al.add(>10>);> >al.add(>20>);> >al.add(>30>);> >al.add(>1>);> >al.add(>2>);> > >// Printing the current ArrayList> >System.out.println(al);> > >// This makes a call to remove(Object) and> >// removes element 1> >al.remove(Integer.valueOf(>1>));> > >// This makes a call to remove(Object) and> >// removes element 2> >al.remove(Integer.valueOf(>2>));> > >// Printing the modified ArrayList> >System.out.println(al);> >}> }> |
>
>
Output:
[10, 20, 30,1 ,2] [10, 20, 30]>
Bemærk: Det anbefales ikke at bruge ArrayList.remove() ved iteration over elementer.
Også nyt Integer(int_value) er blevet forældet siden Java 9, så det er bedre at bruge Integer.valueOf(int_value) til at konvertere et primitivt heltal til Integer Object.
Metode 3: Brug af Iterator.remove() metoden
Dette kan føre til ConcurrentModificationException Ved iteration over elementer anbefales det at bruge Iterator.remove() metode.
polymorfi
Eksempel:
Java
kernesprog i java
// Java program to demonstrate working of> // Iterator.remove() on an integer ArrayList> import> java.util.ArrayList;> import> java.util.Iterator;> import> java.util.List;> > public> class> GFG {> > >// Main driver method> >public> static> void> main(String[] args)> >{> >// Creating an ArrayList> >List al =>new> ArrayList();> > >// Adding elements to our ArrayList> >// using add() method> >al.add(>10>);> >al.add(>20>);> >al.add(>30>);> >al.add(>1>);> >al.add(>2>);> > >// Printing the current ArrayList> >System.out.println(al);> > >// Creating iterator object> >Iterator itr = al.iterator();> > >// Holds true till there is single element> >// remaining in the object> >while> (itr.hasNext()) {> > >// Remove elements smaller than 10 using> >// Iterator.remove()> >int> x = (Integer)itr.next();> >if> (x <>10>)> >itr.remove();> >}> > >// Printing the updated ArrayList> >System.out.print(al);> >}> }> |
>
>Produktion
[10, 20, 30, 1, 2] [10, 20, 30]>