【Java】removeを使ってリスト(List)から要素を削除する!
処理を記述していく中で、リストのデータの一部だけ削除したいというようなケースがあるかと思います。
そのようなリスト(List)から要素を削除する場合にはListクラスのremove()メソッドを使用します。
Listクラスのremoveメソッドは、削除したい要素のインデックスの番号やインスタンスを指定してリストの要素を削除することができます。
今回はListクラスのremoveメソッドを使って以下の場合でリストから要素を削除します。
・インデックスを指定してリストから要素を削除する場合
・インスタンスを指定してリストから要素を削除する場合
・指定したインスタンスが複数ある状態でリストから要素を削除する場合
目次
removeメソッドとは
Listクラスのremoveメソッドは、削除したい要素のインデックス番号を指定してリストから要素を削除することができます。
削除された要素の後に格納されていた要素は、インデックス番号が1ずつずれるようになります。
removeメソッドの書き方
removeメソッドの構文は下記となります。
1 |
List.remove(インデックスやインスタンス); |
remove()の()に引数としてインデックス、インスタンス(文字列など)を指定することで指定した要素を削除します。
リスト(List)から要素を削除するサンプルコード
リスト(List)から要素を削除するサンプルコードを紹介します。
インデックスを指定する場合
インデックスを指定してリストの要素を削除します。
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
// リストから要素を削除する import java.util.ArrayList; import java.util.List; public class Main { public static void main(String[] args) throws Exception { List<String> list1 = new ArrayList<String>(); // リストに要素を追加 list1.add("あいうえお"); list1.add("かきくけこ"); list1.add("さしすせそ"); System.out.println("・削除前"); System.out.println(list1); System.out.println("要素数:" + list1.size()); // インデックス指定での要素の削除 // 削除した要素が返される String str = list1.remove(1); System.out.println("・削除後"); System.out.println(list1); System.out.println("要素数:" + list1.size()); System.out.println("削除した要素:" + str); } } |
出力結果
・削除前
[あいうえお, かきくけこ, さしすせそ]
要素数:3
・削除後
[あいうえお, さしすせそ]
要素数:2
削除した要素:かきくけこ
インデックスを指定して、リストの要素を削除しています。
インスタンスを指定する場合
インスタンスを指定してリストの要素を削除します。
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
public class Main { public static void main(String[] args) throws Exception { List<String> lis2 = new ArrayList<String>(); // リストに要素を追加 list2.add("あいうえお"); list2.add("かきくけこ"); list2.add("さしすせそ"); System.out.println("・削除前"); System.out.println(list2); System.out.println("要素数:" + list2.size()); // インスタンス指定での要素の削除 boolean result = list2.remove("あいうえお"); System.out.println("・削除後"); System.out.println(result ? "削除した":"削除しなかった"); System.out.println(list2); System.out.println("要素数:" + list2.size()); } } |
出力結果
・削除前
[あいうえお, かきくけこ, さしすせそ]
要素数:3
・削除後
削除した
[かきくけこ, さしすせそ]
要素数:2
インスタンスを指定して、リストの要素を削除しています。
指定したインスタンスが複数ある場合
指定したインスタンスが複数あるリストの要素を削除します。
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
// リストから要素を削除する import java.util.ArrayList; import java.util.List; public class Main { public static void main(String[] args) throws Exception { List<String> list3 = new ArrayList<String>(); // リストに要素を追加 list3.add("あいうえお"); list3.add("かきくけこ"); list3.add("さしすせそ"); list3.add("あいうえお"); System.out.println("・削除前"); System.out.println(list3); System.out.println("要素数:" + list3.size()); // インスタンス指定での要素の削除 boolean result = list3.remove("あいうえお"); System.out.println("・削除後"); System.out.println(result ? "削除した":"削除しなかった"); System.out.println(list3); System.out.println("要素数:" + list3.size()); } } |
出力結果
・削除前
[あいうえお, かきくけこ, さしすせそ, あいうえお]
要素数:4
・削除後
削除した
[かきくけこ, さしすせそ, あいうえお]
要素数:3
指定したインスタンスが複数ある場合は、最初の1つ目の要素を削除しますが、2つ目の要素は削除されません。
リスト(List)の全要素を削除する場合
リスト(List)の全要素を削除するにはListクラスのclearメソッドを使用します。
clearメソッドについてもっと詳しく知りたい方は、こちらをご参考ください。
今回のポイント
removeでリストから要素を削除
リストから要素を削除するにはListクラスのremoveメソッドを使用する
• Listクラスのremoveメソッドを使うと、リストから要素を削除することができる
• インデックスで削除対象を指定した場合は、削除した要素がremoveメソッドの戻り値になる
• パラメータが「null」の場合、リストの先頭から調べて最初の「null」要素を削除し、「null」以外の場合は最初のequalsメソッドで一致した要素を1つ削除する
• 一致するインスタンスがリスト内に複数ある場合、最初の1つだけが削除され、2つ目の要素は削除されない
ST
株式会社flyhawkのSTです。フライテックメディア事業部でのメディア運営・ライター業務なども担当。愛機はMac Book AirとThinkPad。好きな言語:swift、JS系(Node.js等)。好きなサーバー:AWS。受託開発やプログラミングスクールの運営をしております。ご気軽にお問い合わせください。