Kaip pašalinti elementą iš „ArrayList“ „Java“?
ArrayList yra dalis surinkimo sistema ir yra java.util pakete. Tai suteikia mums dinaminius „Java“ masyvus. Tačiau jis gali būti lėtesnis nei standartiniai masyvai, bet gali būti naudingas programose, kuriose reikia daug manipuliuoti masyve. Ši klasė randama java.util paketą. Įvedus ir atnaujinus java versijas, atsiranda naujesni metodai, jei matome, kad iš Java8 suvokiamos lambda išraiškos ir srautai nebuvo prieinami anksčiau, kaip buvo pristatyta java 8 versijoje, taigi, ar turime daugiau būdų, kaip veikti per Arraylist atlikti operacijas. Čia aptarsime būdą, kaip pašalinti elementą iš ArrayList.
Pašalindami elementus iš „ArrayList“, galime pašalinti elementus per indeksus arba per „ArrayList“ esančias vertes. Mes aptarsime abu būdus interpretuodami naudodami švarią Java programą.
Metodai:
Yra 3 būdai pašalinti elementą iš ArrayList kaip nurodyta, kuri vėliau bus atskleista taip:
- Metodo pašalinti () naudojimas pagal indeksus (numatytasis)
- Naudojant Remove() metodą pagal reikšmes
- Per iteratorius naudojamas Remove() metodas
Pastaba: Nerekomenduojama naudoti ArrayList.remove(), kai kartojama per elementus.
1 būdas: Metodo Remove() naudojimas pagal indeksus
Tai yra numatytasis metodas, kai tik naudojame bet kurį duomenų struktūros metodą, jis iš esmės veikia tik per indeksus, taigi, kai naudojame metodą remove(), mes iš esmės pašaliname elementus iš indeksų iš ArrayList.
„ArrayList“ klasė pateikia du perkrautus pašalinimo () metodus.
- Pašalinti(int index): Priima šalinamo objekto indeksą
- Pašalinti(Objekto objektas): Priima pašalintiną objektą
Remdamiesi toliau pateiktais pavyzdžiais išsiaiškinkime taip:
Pavyzdys:
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);> > }> }> |
Išvestis
[10, 20, 30, 1, 2] [10, 1, 2]
Dabar matėme, kaip pašalinami elementai iš „ArrayList“ naudodami aukščiau esančius indeksus, o dabar pažiūrėkime, kad perduotas parametras laikomas indeksu. Kaip pašalinti elementus pagal vertę.
2 būdas: Naudojant Remove() metodą pagal reikšmes
Pavyzdys:
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);> > }> }> |
Išvestis:
[10, 20, 30,1 ,2] [10, 20, 30]
Pastaba: Nerekomenduojama naudoti ArrayList.remove(), kai kartojama per elementus.
Taip pat naujasis Integer(int_value) buvo nebenaudojamas nuo Java 9, todėl geriau naudoti Integer.valueOf(int_value), kad primityvus sveikasis skaičius konvertuotų į sveikąjį objektą.
3 būdas: Naudojant Iterator.remove() metodą
Tai gali sukelti ConcurrentModificationException Kai kartojama per elementus, rekomenduojama naudoti Iterator.remove() metodas.
Pavyzdys:
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);> > }> }> |
Išvestis
[10, 20, 30, 1, 2] [10, 20, 30]