logo

Jak odstranit prvek z ArrayList v Javě?

ArrayList je součástí sbírkový rámec a je přítomen v balíčku java.util. Poskytuje nám dynamická pole v Javě. Může to být pomalejší než standardní pole, ale může být užitečné v programech, kde je potřeba spousta manipulace s polem. Tato třída se nachází v java.util balík. Se zavedením a upgrady ve verzích Java jsou k dispozici novější metody, pokud z Java8 vidíme, že vnímavé lambda výrazy a koncepty proudů nebyly k dispozici dříve, protože byly představeny ve verzi Java8, takže máme více způsobů, jak pracovat přes Arraylist provádět operace. Zde budeme diskutovat o způsobu, jak odstranit prvek z ArrayList.

Při odstraňování prvků z ArrayList můžeme buď odstranit prvky přes indexy, nebo prostřednictvím hodnot, které tam byly v ArrayList. Budeme diskutovat o obou způsobech prostřednictvím interpretace prostřednictvím čistého programu Java.



Metody:

Existují 3 způsoby, jak odstranit prvek z ArrayList jak je uvedeno, které bude později odhaleno takto:

  1. Použití metody remove() pomocí indexů (výchozí)
  2. Použití metody remove() podle hodnot
  3. Použití metody remove() přes iterátory

Poznámka: Při iteraci prvků se nedoporučuje používat ArrayList.remove().



Metoda 1: Použití metody remove() podle indexů

Je to výchozí metoda, jakmile použijeme jakoukoli metodu nad datovou strukturou, v podstatě funguje pouze nad indexy, takže kdykoli použijeme metodu remove(), v podstatě odstraňujeme prvky z indexů z ArrayList.

Třída ArrayList poskytuje dvě přetížené metody remove().



  • remove(int index): Přijme index objektu, který má být odstraněn
  • remove(Object obj): Přijme objekt, který má být odstraněn

Pojďme to zjistit pomocí níže uvedených příkladů:

Příklad:

kolik měst je v USA

Jáva


java escape znaky



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

>

>

Výstup

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

Nyní jsme viděli odstraňování prvků v ArrayList pomocí indexů výše, nyní se podívejme, že předaný parametr je považován za index. Jak odstranit prvky podle hodnoty.

Metoda 2: Použití metody remove() podle hodnot

Příklad:

věk rekha

Jáva




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

'kruskalův algoritmus'

>

>

Výstup :

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

Poznámka: Při iteraci prvků se nedoporučuje používat ArrayList.remove().

Také nové číslo Integer(int_value) bylo od Java 9 zastaralé, takže je lepší použít Integer.valueOf(int_value) k převodu primitivního celého čísla na objekt typu Integer.

Metoda 3: Použití metody Iterator.remove().

To může vést k ConcurrentModificationException Při iteraci přes prvky se doporučuje použít Iterator.remove() metoda.

Příklad:

Jáva




přenést řetězec do int 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);> >}> }>

>

>

Výstup

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