開発者ドキュメント

java-arraylist-remove-element

ArrayListから要素を削除する

1. 概要

このチュートリアルでは、さまざまな手法を使用して、Javaの_ArrayList_から要素を削除する方法を説明します。 スポーツのリストが与えられたら、次のリストのいくつかの要素を取り除く方法を見てみましょう。
List<String> sports = new ArrayList<>();
sports.add("Football");
sports.add("Basketball");
sports.add("Baseball");
sports.add("Boxing");
sports.add("Cycling");

2. ArrayList#remove

_ArrayList_には、要素を削除する2つの使用可能なメソッドがあります。*要素のインデックスを渡す*削除、または*要素自体を渡す*削除(存在する場合)です。 両方の使用法を見ていきます。

2.1. インデックスで削除

パラメータとしてインデックスを渡す_remove_を使用して、リスト内の指定された位置にある要素を*削除し、後続の要素を左にシフトして、インデックスから1を減算します。 実行後、_remove_メソッドは削除された要素を返します:
sports.remove(1); // since index starts at 0, this will remove "Basketball"
assertEquals(4, sports.size());
assertNotEquals(sports.get(1), "Basketball");

2.2. 要素ごとに削除

別の方法は、このメソッドを使用して、リストから要素の最初の出現を削除することです*。 正式には、存在する場合はインデックスが最小の要素を削除し、存在しない場合はリストは変更されません。
sports.remove("Baseball");
assertEquals(4, sports.size());
assertFalse(sports.contains("Baseball"));

3. 繰り返しながら削除

ループ中に、_ArrayList_から要素を削除したい場合があります。 _ConcurrentModificationException、_を生成しないため、_Iterator_クラスを使用して適切に行う必要があります。
ループ内の要素を取り除く方法を見てみましょう*:
Iterator<String> iterator = sports.iterator();
while (iterator.hasNext()) {
    if (iterator.next().equals("Boxing")) {
        iterator.remove();
    }
}

4. ArrayList#removeIf(JDK 8)

  • JDK 8以降のバージョンを使用している場合は、_ArrayList#removeIf_を利用できます。これにより、特定の述部を満たす_ArrayList_のすべての要素が削除されます。

sports.removeIf(p -> p.equals("Cycling"));
assertEquals(4, sports.size());
assertFalse(sports.contains("Cycling"));
最後に、https://www.baeldung.com/java-array-remove-element [Apache Commonsのようなサードパーティライブラリを使用]を実行できます。さらに詳しく知りたい場合は、https:// www.baeldung.com/java-remove-value-from-list [効率的な方法ですべての特定の発生を削除]。

5. 結論

このチュートリアルでは、JavaでArrayListから要素を削除するさまざまな方法を検討しました。
いつものように、このチュートリアルで使用されるすべての例はhttps://github.com/eugenp/tutorials/tree/master/core-java-modules/core-java-collections-array-list/[GitHubで利用可能]です。
モバイルバージョンを終了