JavaでArrayListから要素を削除するにはどうすればよいですか?

ArrayList はの一部です コレクションフレームワーク java.util パッケージに存在します。 Java で動的配列を提供します。ただし、標準の配列よりも遅い場合がありますが、配列内で大量の操作が必要なプログラムでは役立ちます。このクラスは次の場所にあります java.util パッケージ。 Java バージョンでの導入とアップグレードにより、Java 8 から見ると、より新しいメソッドが利用可能になり、知覚ラムダ式とストリームの概念は Java バージョン 8 で導入された以前は利用できませんでした。そのため、Arraylist を操作して次のことを行う方法が増えています。操作を実行します。ここでは、ArrayList から要素を削除する方法について説明します。

ArrayList から要素を削除する際、インデックスを介して要素を削除する操作を行うことも、ArrayList 内に存在する値を介して要素を削除することもできます。クリーンな Java プログラムによる解釈を通じて、両方の方法について説明します。

方法:

がある ArrayList から要素を削除する 3 つの方法 リストされているとおりであり、後で次のように明らかになります。

  1. インデックスによるremove()メソッドの使用(デフォルト)
  2. 値によるremove()メソッドの使用
  3. イテレータに対するremove()メソッドの使用

注記: 要素を反復処理するときに ArrayList.remove() を使用することはお勧めできません。

方法 1: インデックスによるremove()メソッドの使用

これは、データ構造に対してメソッドを使用するとすぐにデフォルトのメソッドになります。基本的にはインデックスに対してのみ動作するため、remove() メソッドを使用するときは常に、基本的に ArrayList のインデックスから要素を削除することになります。

ArrayList クラス 2 つのオーバーロードされた Remove() メソッドを提供します。

  • Remove(int Index): 削除するオブジェクトのインデックスを受け入れます。
  • Remove(Object obj): 削除するオブジェクトを受け入れます

以下に示す例を参考にして、次のことを理解してみましょう。

例:

ジャワ




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

出力

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

上記でインデックスを介して ArrayList 内の要素を削除することを見てきました。次に、渡されたパラメーターがインデックスとみなされることを見てみましょう。値によって要素を削除する方法。

方法 2: 値によるremove()メソッドの使用

例:

ジャワ




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

出力:

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

注記: 要素を反復処理するときに ArrayList.remove() を使用することはお勧めできません。

また、新しい Integer( int_value) は Java 9 以降非推奨になっているため、Integer.valueOf(int_value) を使用してプリミティブ整数を Integer オブジェクトに変換することをお勧めします。

方法 3: Iterator.remove() メソッドの使用

これは次の原因となる可能性があります ConcurrentModificationException 要素を反復処理する場合は、次の使用をお勧めします。 Iterator.remove() 方法。

例:

ジャワ




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

出力

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