ArrayList är en del av insamlingsram och finns i paketet java.util. Det ger oss dynamiska arrayer i Java. Det kan dock vara långsammare än vanliga arrayer men kan vara till hjälp i program där mycket manipulation i arrayen behövs. Denna klass finns i java.util paket. Med introduktionen och uppgraderingarna i java-versioner blir nyare metoder tillgängliga om vi ser från Java8 att perceptiva lambda-uttryck och strömningskoncept inte var tillgängliga innan det eftersom det introducerades i java version8, så har vi fler sätt att arbeta över Arraylist för att utföra operationer. Här kommer vi att diskutera ett sätt att ta bort ett element från en ArrayList.
När vi tar bort element från ArrayList kan vi antingen arbeta för att ta bort element över index eller via värden som finns där i en ArrayList. Vi kommer att diskutera båda sätten via tolkning genom ett rent java-program.
Metoder:
Det finns 3 sätt att ta bort ett element från ArrayList som listat som senare kommer att avslöjas enligt följande:
- Använder metoden remove() av indexes(standard)
- Använder metoden remove() efter värden
- Använder metoden remove() över iteratorer
Notera: Det rekommenderas inte att använda ArrayList.remove() när man itererar över element.
Metod 1: Använder metoden remove() av index
Det är en standardmetod så snart vi använder någon metod över datastruktur, fungerar den i princip bara över index, så när vi använder metoden remove() tar vi i princip bort element från index från en ArrayList.
ArrayList klass tillhandahåller två överbelastade remove()-metoder.
- remove(int index): Accepterar indexet för objektet som ska tas bort
- remove(Object obj): Accepterar objektet som ska tas bort
Låt oss ta reda på det med hjälp av exempel som tillhandahålls nedan enligt följande:
Exempel:
markdown-bild
Java
fibonacci-serien i c
// 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 sett borttagning av element i en ArrayList via index ovan, låt oss nu se att den passerade parametern anses vara ett index. Hur man tar bort element efter värde.
Metod 2: Använder metoden remove() efter värden
Exempel:
Java
maskinskrivet datum och tid
// 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);> >}> }> |
>
>
Utgång:
hur man genererar slumptal i java
[10, 20, 30,1 ,2] [10, 20, 30]>
Notera: Det rekommenderas inte att använda ArrayList.remove() när man itererar över element.
Även nytt Integer(int_value) har föråldrats sedan Java 9, så det är bättre att använda Integer.valueOf(int_value) för att konvertera ett primitivt heltal till Integer Object.
Metod 3: Använder metoden Iterator.remove().
Detta kan leda till ConcurrentModificationException Vid iteration över element rekommenderas det att använda Iterator.remove() metod.
Exempel:
Java
något för bfs
// 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]>