Caution
お使いのブラウザはJavaScriptが実行できない状態になっております。
当サイトはWebプログラミングの情報サイトの為、
JavaScriptが実行できない環境では正しいコンテンツが提供出来ません。
JavaScriptが実行可能な状態でご閲覧頂くようお願い申し上げます。
リスト.remove() / clear() / size() / isEmpty()
リストから要素を削除したり、リスト全体を空にしたり、要素数やリストが空かどうかを確認したりするメソッドです。データの管理と状態確認に欠かせない基本操作です。
構文
// 指定したインデックスの要素を削除します。 リスト.remove(int index); // 指定したオブジェクトと等しい最初の要素を削除します。 リスト.remove(Object o); // リストの全要素を削除します。 リスト.clear(); // リストの要素数を返します。 リスト.size(); // リストが空かどうかを返します。 リスト.isEmpty();
メソッド一覧
| メソッド | 概要 |
|---|---|
| remove(int index) | 指定したインデックスの要素を削除して返します。それ以降の要素は前にシフトされます。 |
| remove(Object o) | 指定したオブジェクトと等しい(equals()で判定)最初の要素を削除します。削除できた場合は true を返します。 |
| clear() | リストの全要素を削除して空にします。 |
| size() | リストに含まれる要素の数を返します。 |
| isEmpty() | リストが空(要素数が0)の場合は true、そうでない場合は false を返します。 |
サンプルコード
import java.util.ArrayList;
ArrayList<String> list = new ArrayList<>();
list.add("apple");
list.add("banana");
list.add("cherry");
list.add("banana");
System.out.println(list); // 『[apple, banana, cherry, banana]』と出力されます。
// インデックス指定で削除します。
list.remove(0); // 先頭の『apple』を削除します。
System.out.println(list); // 『[banana, cherry, banana]』と出力されます。
// オブジェクト指定で削除します(最初に一致するものだけ)。
list.remove("banana");
System.out.println(list); // 『[cherry, banana]』と出力されます。
// size() でサイズを確認します。
System.out.println(list.size()); // 『2』と出力されます。
// isEmpty() で空かどうかを確認します。
System.out.println(list.isEmpty()); // 『false』と出力されます。
// clear() でリストを空にします。
list.clear();
System.out.println(list); // 『[]』と出力されます。
System.out.println(list.isEmpty()); // 『true』と出力されます。
// Integer リストで remove(int) と remove(Object) の違いに注意します。
ArrayList<Integer> nums = new ArrayList<>(java.util.Arrays.asList(10, 20, 30));
nums.remove(0); // インデックス0の要素(10)を削除します。
System.out.println(nums); // 『[20, 30]』と出力されます。
nums.remove(Integer.valueOf(20)); // 値20の要素を削除します。
System.out.println(nums); // 『[30]』と出力されます。
概要
『remove()』はオーバーロードされており、引数が int 型の場合はインデックス指定の削除、Object 型の場合は値指定の削除になります。ArrayList<Integer> で値を指定して削除したい場合、remove(20) と書くとインデックス20の要素を削除しようとします。値で削除するには remove(Integer.valueOf(20)) と明示的にラッパー型にキャストしてください。
ループ中にリストを変更する場合は ConcurrentModificationException が発生する場合があります。ループ内で削除する場合は Iterator の remove() か、Java 8 以降の removeIf() を使うと安全です。
要素の追加・取得には『add() / get()』、要素の検索には『contains() / indexOf()』を使用してください。
記事の間違いや著作権の侵害等ございましたらお手数ですがこちらまでご連絡頂ければ幸いです。