logo

Com eliminar un element de ArrayList a Java?

ArrayList forma part de marc de recollida i està present al paquet java.util. Ens proporciona matrius dinàmiques en Java. Tanmateix, pot ser més lent que les matrius estàndard, però pot ser útil en programes on es necessita molta manipulació a la matriu. Aquesta classe es troba a java.util paquet. Amb la introducció i les actualitzacions de les versions de Java, hi ha mètodes més nous disponibles si veiem des de Java8 que les expressions lambda perceptives i els conceptes de flux no estaven disponibles abans, ja que es va introduir a la versió de Java 8, així que tenim més maneres d'operar amb Arraylist per realitzar operacions. Aquí parlarem d'una manera d'eliminar un element d'una ArrayList.

Mentre eliminem elements de ArrayList, podem estar operant per eliminar elements sobre índexs o mitjançant valors que hi hagi en una ArrayList. Parlarem de les dues maneres mitjançant la interpretació mitjançant un programa java net.



Mètodes:

N'hi ha 3 maneres d'eliminar un element de ArrayList tal com s'indica que més endavant es revelarà de la següent manera:

  1. Utilitzant el mètode remove() per índexs (per defecte)
  2. Utilitzant el mètode remove() per valors
  3. Utilitzant el mètode remove() sobre iteradors

Nota: No es recomana utilitzar ArrayList.remove() en iterar sobre elements.



Mètode 1: Utilitzant el mètode remove() per índexs

És un mètode predeterminat tan bon punt utilitzem qualsevol mètode sobre l'estructura de dades, bàsicament només funciona sobre índexs, de manera que sempre que utilitzem el mètode remove() estem eliminant bàsicament elements dels índexs d'una ArrayList.

Classe ArrayList proporciona dos mètodes remove() sobrecarregats.



  • remove(int index): accepta l'índex de l'objecte que s'ha d'eliminar
  • remove(Object obj): Accepta l'objecte que s'ha d'eliminar

Anem a esbrinar amb l'ajuda dels exemples que es proporcionen a continuació de la següent manera:

Exemple:

comentaris java

Java


pel·lícules123 a



// 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);> >}> }>

>

>

Sortida

[10, 20, 30, 1, 2] [10, 1, 2]>

Ara hem vist eliminar elements d'una ArrayList mitjançant índexs anteriors, ara veiem que el paràmetre passat es considera un índex. Com eliminar elements per valor.

Mètode 2: Utilitzant el mètode remove() per valors

Exemple:

Java


tipus d'aprenentatge automàtic



// 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);> >}> }>

>

cadena multilínia javascript
>

Sortida:

[10, 20, 30,1 ,2] [10, 20, 30]>

Nota: No es recomana utilitzar ArrayList.remove() en iterar sobre elements.

També el nou Integer(int_value) ha quedat obsolet des de Java 9, per la qual cosa és millor utilitzar Integer.valueOf(int_value) per convertir un nombre enter primitiu a Integer Object.

Mètode 3: Utilitzant el mètode Iterator.remove().

Això pot conduir a ConcurrentModificationException En iterar sobre elements, es recomana utilitzar-lo Iterator.remove() mètode.

Exemple:

Java




gimp canvia de color
// 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);> >}> }>

>

>

Sortida

[10, 20, 30, 1, 2] [10, 20, 30]>