Javaのリスト(ArrayList)の要素を削除する方法について書いています。
リストの要素を削除するには、リストから下記のメソッドを使います。
・removeAllメソッド
載せているコードについては、OpenJDKのバージョン19で動作を確認しました。
removeメソッドで要素番号の要素を削除する
リスト(ArrayList)の要素を削除したいときには、removeメソッドを使うと良いです。
要素番号を指定すると、指定した要素番号の要素を削除できます。
例えば、下記のように使うことができます。
import java.util.ArrayList;
public class DeleteListTest {
public void exec() {
ArrayList<String> fruits = new ArrayList<String>();
fruits.add("apple");
fruits.add("grape");
fruits.add("orange");
fruits.add("banana");
fruits.add("peach");
fruits.remove(1);
fruits.remove(2);
for (String fruit : fruits) {
System.out.println(fruit);
}
}
}
最初にリストを作るためにjava.util.ArrayListをインポートしています。
execメソッドで、removeメソッドを使う処理をしています。
まず、fruits変数に文字列のリスト(ArrayList)を作っています。
次の処理でfruitsリストに対して、addメソッドを使って、文字列を5つ追加しています。
fruitsリストに「apple・grape・orange・banana・peach」と追加されました。
その後、fruitsリストからremoveメソッドを呼び出しています。
最初に要素番号の「1」を指定しているので、1番目の要素が削除されます。
これでリストを0番目から数えて、1番目は「grape」なので、「grape」が削除されます。
その後にremoveメソッドに「2」を指定しているので、残った要素の2番目の要素が削除されます。
残っているのは「apple・orange・banana・peach」なので、2番目の「banana」が削除になります。
最後にfruitsリストをfor文でループして、値を出力しました。
プログラムを実行すると、下記のように表示されました。
apple
orange
peach
リストの値が削除されたことが確認できました。
このように連続して削除すると、要素番号がずれながら、removeメソッドが適用されるので気をつけてください。
removeメソッドで要素を指定して削除する
removeメソッドに対して、削除したい要素を指定して削除することもできます。
例えば、下記のように使うことができます。
import java.util.ArrayList;
public class DeleteListTest {
public void exec() {
ArrayList<String> fruits = new ArrayList<String>();
fruits.add("apple");
fruits.add("banana");
fruits.add("grape");
fruits.remove("banana");
for (String fruit : fruits) {
System.out.println(fruit);
}
}
}
最初にリストを使うためのimport文を書いています。
execメソッドで、removeメソッドを使う処理をしています。
先ほどと同じようにfruitsリストに対して、3つの文字列でリストを作成しました。
次の処理で、fruitsリストからremoveメソッドを呼んでいます。
渡しているのは、リストから削除したい要素(banana)です。
このように要素を渡すことでも削除することができます。
最後にfruitsリストをfor文でループして、値を出力しました。
プログラムを実行すると、下記のように表示されました。
apple
grape
指定した「banana」がリストから削除されたことが確認できました。
removeAllメソッドでリストを指定して削除する
removeAllメソッドを使うことで、リストから指定したリストの要素を削除することができます。
例えば、下記のように使います。
import java.util.ArrayList;
public class DeleteListTest {
public void exec() {
ArrayList<String> fruits1 = new ArrayList<String>();
fruits1.add("apple");
fruits1.add("melon");
fruits1.add("banana");
fruits1.add("peach");
fruits1.add("grape");
ArrayList<String> fruits2 = new ArrayList<String>();
fruits2.add("melon");
fruits2.add("peach");
// fruits1リストからfruits2リストの要素を削除
fruits1.removeAll(fruits2);
for (String fruit : fruits1) {
System.out.println(fruit);
}
}
}
最初にリストを使うためのimport文を書いています。
execメソッドで、removeAllメソッドを使う処理をしています。
fruits1リストに対して、5つの文字列でリストを作成しました。
同様にしてfruits2リストに対して、2つの文字列でリストを作成しました。
次の処理でfruits1リストからremoveAllメソッドを呼び出しています。
引数として渡しているのは、削除したい要素を含んだリストです。
今回はfruits2リストを渡しているので、fruits1リストからfruits2リストの要素が全て削除されます。
最後にfruits1リストをfor文でループして、値を出力しました。
プログラムを実行すると、下記のように出力されました。
apple
banana
grape
fruits2リストの要素の「melon・peach」がfruits1リストから削除されていることが確認できました。
Javaのリストから要素を削除する方法まとめ
今回はJavaのリストから要素を削除する方法について書きました。
記事の内容をまとめると、下記のようになります。
・removeメソッドを使って、要素を指定して、要素を削除することができた。
・removeAllメソッドを使って、渡したリストの要素を呼び出し元のリストから削除できた。

コメント