Javaのリストから要素を削除する3つの方法!(remove)

Java Java

Javaのリスト(ArrayList)の要素を削除する方法について書いています。
リストの要素を削除するには、リストから下記のメソッドを使います。

・removeメソッド
・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メソッドを使って、要素番号を指定して、要素を削除することができた。
・removeメソッドを使って、要素を指定して、要素を削除することができた。
・removeAllメソッドを使って、渡したリストの要素を呼び出し元のリストから削除できた。

コメント

タイトルとURLをコピーしました