Kako odstraniti element iz ArrayList v Javi?

ArrayList je del okvir zbiranja in je prisoten v paketu java.util. Zagotavlja nam dinamična polja v Javi. Čeprav je morda počasnejši od standardnih nizov, je lahko koristen v programih, kjer je potrebnih veliko manipulacij z nizom. Ta razred najdemo v java.util paket. Z uvedbo in nadgradnjami v različicah Jave so na voljo novejše metode, če vidimo iz Jave8 zaznavni lambda izrazi in koncepti tokov pred tem niso bili na voljo, saj je bilo uvedeno v Javi različica8, zato imamo več načinov za delovanje prek Arraylist za izvajati operacije. Tukaj bomo razpravljali o načinu odstranitve elementa iz seznama ArrayList.

Med odstranjevanjem elementov iz seznama ArrayList lahko odstranimo elemente prek indeksov ali prek vrednosti, ki so tam v seznamu ArrayList. Razpravljali bomo o obeh načinih prek tolmačenja s čistim programom java.

Metode:

obstajajo 3 načini za odstranitev elementa iz ArrayList kot je navedeno, kar bo kasneje razkrito na naslednji način:

  1. Uporaba metode remove() z indeksi (privzeto)
  2. Uporaba metode remove() po vrednostih
  3. Uporaba metode remove() nad iteratorji

Opomba: Pri ponavljanju elementov ni priporočljivo uporabljati ArrayList.remove().

1. način: Uporaba metode remove() z indeksi

To je privzeta metoda, takoj ko uporabimo katero koli metodo nad podatkovno strukturo, v bistvu deluje samo nad indeksi, tako da vsakič, ko uporabimo metodo remove(), v bistvu odstranjujemo elemente iz indeksov iz ArrayList.

Razred ArrayList nudi dve preobremenjeni metodi remove().

  • remove(int index): Sprejme indeks predmeta, ki ga želite odstraniti
  • remove(Object obj): Sprejme predmet, ki ga želite odstraniti

Ugotovimo s pomočjo spodnjih primerov, kot sledi:

primer:

Java




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

Izhod

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

Zdaj smo videli odstranjevanje elementov v ArrayList prek zgornjih indeksov, zdaj pa poglejmo, da se posredovani parameter šteje za indeks. Kako odstraniti elemente po vrednosti.

2. način: Uporaba metode remove() po vrednostih

primer:

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

Izhod:

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

Opomba: Pri ponavljanju elementov ni priporočljivo uporabljati ArrayList.remove().

Tudi novi Integer( int_value) je bil od Jave 9 opuščen, zato je bolje uporabiti Integer.valueOf(int_value) za pretvorbo primitivnega celega števila v Integer Object.

3. način: Uporaba metode Iterator.remove().

To lahko vodi do ConcurrentModificationException Pri ponavljanju elementov je priporočljiva uporaba Iterator.remove() metoda.

primer:

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

Izhod

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