カテゴリ: Java 更新日: 2025/12/01

JavaのArrayListクラスとretainAllメソッドを完全解説!初心者でもわかる共通要素の保持

ArrayListのretainAllメソッド
ArrayListのretainAllメソッド

教材紹介 Java学習のおすすめ教材

Javaの基礎を体系的に整理しながら学習したい方には、 資格対策としても定評のある定番教材が参考になります。

Javaプログラマ Silver SE 17 教科書をAmazonで見る

※ Amazon広告リンク

先生と生徒の会話形式で理解しよう

生徒

「Javaでリストから特定の要素だけを残して、それ以外を削除する方法はありますか?」

先生

「その場合は、ArrayListクラスのretainAllメソッドを使うと良いですよ。このメソッドを使えば、指定したコレクションに含まれる要素だけをリストに残すことができます。」

生徒

「なるほど!具体的にはどのように使うんですか?」

先生

「それでは、retainAllメソッドの使い方を詳しく見ていきましょう!」

1. ArrayListクラスとは?

1. ArrayListクラスとは?
1. ArrayListクラスとは?

ArrayListは、Javaのコレクションフレームワークに属するクラスで、動的なサイズのリストを提供します。リスト内の要素を簡単に追加、削除、操作することができ、柔軟なデータ管理が可能です。

以下は、ArrayListの基本的な使用例です。


import java.util.ArrayList;

public class ArrayListExample {
    public static void main(String[] args) {
        ArrayList<String> items = new ArrayList<>();
        items.add("Apple");
        items.add("Banana");
        items.add("Cherry");

        System.out.println("リストの内容: " + items);
    }
}

このコードでは、ArrayListを使ってリストを作成し、要素を追加しています。

2. retainAllメソッドとは?

2. retainAllメソッドとは?
2. retainAllメソッドとは?

retainAllメソッドは、リストから指定されたコレクションに含まれる要素だけを保持し、それ以外の要素を削除するためのメソッドです。この操作により、リスト内の要素が指定された条件に基づいてフィルタリングされます。

以下は、retainAllメソッドを使用した基本的な例です。


import java.util.ArrayList;
import java.util.Arrays;

public class RetainAllExample {
    public static void main(String[] args) {
        ArrayList<String> items = new ArrayList<>(Arrays.asList("Apple", "Banana", "Cherry", "Date"));
        ArrayList<String> filter = new ArrayList<>(Arrays.asList("Banana", "Date"));

        // 共通要素を保持
        items.retainAll(filter);

        System.out.println("共通要素のみのリスト: " + items);
    }
}

このコードでは、リスト内からfilterコレクションに含まれる要素だけを保持しています。

3. retainAllメソッドの特徴と注意点

3. retainAllメソッドの特徴と注意点
3. retainAllメソッドの特徴と注意点

retainAllメソッドを使用する際の特徴と注意点は以下の通りです。

  • 指定されたコレクションに基づく保持: 削除される要素は、指定したコレクションに含まれないものです。
  • リストが変更される可能性: 一致する要素がない場合、リストは空になります。
  • 重複要素の取り扱い: 元のリスト内に重複があった場合、重複もそのまま保持されます。

以下は、さらに複雑な条件での使用例です。


import java.util.ArrayList;
import java.util.Arrays;

public class RetainAllComplexExample {
    public static void main(String[] args) {
        ArrayList<Integer> numbers = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9));
        ArrayList<Integer> evenNumbers = new ArrayList<>(Arrays.asList(2, 4, 6, 8));

        // 偶数のみを保持
        numbers.retainAll(evenNumbers);

        System.out.println("偶数のみのリスト: " + numbers);
    }
}

この例では、リスト内の偶数だけを保持しています。

Javaの基礎を最初から体系的に学びたい人には、 初心者向けで定評のある定番入門書がこちらです。

スッキリわかるJava入門 第4版をAmazonで見る

※ Amazon広告リンク

4. 実践例: ユーザー入力による要素の保持

4. 実践例: ユーザー入力による要素の保持
4. 実践例: ユーザー入力による要素の保持

以下の例では、ユーザーが指定した要素だけをリストに保持するプログラムを示します。


import java.util.ArrayList;
import java.util.Arrays;
import java.util.Scanner;

public class DynamicRetainAllExample {
    public static void main(String[] args) {
        ArrayList<String> items = new ArrayList<>(Arrays.asList("Apple", "Banana", "Cherry", "Date"));
        Scanner scanner = new Scanner(System.in);

        System.out.println("保持する要素をカンマ区切りで入力してください (例: Banana,Date):");
        String input = scanner.nextLine();
        ArrayList<String> filter = new ArrayList<>(Arrays.asList(input.split(",")));

        // 入力に基づいて要素を保持
        items.retainAll(filter);

        System.out.println("保持後のリスト: " + items);
    }
}

このプログラムでは、ユーザーが入力した要素だけをリストに残すことができます。

5. まとめ

5. まとめ
5. まとめ

今回は、ArrayListクラスのretainAllメソッドを使って、リストから特定の要素だけを保持する方法を学びました。このメソッドは、指定したコレクションと一致する要素だけをリストに残し、それ以外を削除するための非常に便利なツールです。 特に、大量のデータを扱う場合や、条件に基づいてリストを絞り込みたい場合に役立ちます。 また、retainAllを使用する際は、元のリストが変更されることを理解しておく必要があります。

以下は、今回学んだ内容を振り返る簡単なコード例です。


import java.util.ArrayList;
import java.util.Arrays;

public class RetainAllSummary {
    public static void main(String[] args) {
        ArrayList<String> items = new ArrayList<>(Arrays.asList("Apple", "Banana", "Cherry", "Date", "Elderberry"));
        ArrayList<String> favorites = new ArrayList<>(Arrays.asList("Banana", "Date"));

        // 共通要素を保持
        items.retainAll(favorites);

        System.out.println("お気に入りの要素だけのリスト: " + items);
    }
}

このコードを実行すると、リストには「Banana」と「Date」のみが残り、他の要素は削除されます。

先生と生徒の振り返り会話

生徒

retainAllメソッドを使えば、指定した要素だけを簡単に残すことができるんですね。」

先生

「そうですね。特定の条件に基づいてデータを絞り込む場合に非常に役立つメソッドです。特に、リスト間で共通の要素を見つけたいときに便利です。」

生徒

「元のリストが変更されるので、データを保持しておきたい場合は事前にコピーを作成する必要がありますね。」

先生

「その通りです。また、コレクションに含まれる要素だけを残すので、重複要素や順序もそのまま維持されます。」

生徒

「理解できました!次に使うときは注意してみます!」

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

JavaのArrayListと配列の違いは何ですか?retainAllメソッドはどちらに使えますか?

JavaのArrayListは、動的にサイズを変更できるコレクションで、配列とは異なり要素の追加や削除が簡単です。retainAllメソッドはArrayListなどのコレクションに対して使えますが、配列には使えません。
カテゴリの一覧へ
新着記事
JavaのIndexOutOfBoundsExceptionを完全ガイド!初心者でも理解できる例外処理と回避方法
スッキリわかるJava入門 第4版|独学でもレッスンでも学べる完全ガイド
JavaのCookieクラスのgetCommentメソッドを解説!Servlet開発でクッキーの説明文を取得する方法
JavaのBufferedOutputStreamクラスのwriteメソッドを徹底解説!初心者でもわかるファイルへのバイナリ書き込み
人気記事
No.1
Java&Spring記事人気No1
Spring BootとJavaの互換性一覧!3.5/3.4/3.3はJava 21・17に対応してる?
No.2
Java&Spring記事人気No2
Springの@Serviceアノテーションの使い方を徹底解説!初心者でもわかるSpring フレームワーク入門
No.3
Java&Spring記事人気No3
Thymeleafのth:classappend属性の使い方を完全ガイド!初心者でもわかる動的クラス追加
No.4
Java&Spring記事人気No4
Spring Data JPA入門!findAll()やfindBy**()の使い方などデータベース操作の基礎を学ぶ
No.5
Java&Spring記事人気No5
Spring BootのJakarta移行ガイド!初心者向けjavax→jakarta変更ポイント徹底解説
No.6
Java&Spring記事人気No6
Thymeleaf(タイムリーフ)入門!初心者でもわかるSpring Bootとテンプレートエンジンの使い方
No.7
Java&Spring記事人気No7
Springの@Repositoryアノテーションの使い方を徹底解説!初心者でもわかるSpringフレームワークのデータアクセス
No.8
Java&Spring記事人気No8
JavaのArrayListクラスとgetメソッドを完全解説!初心者でもわかるリストの要素取得

💻 作業効率アップに

長時間のコーディングでも疲れにくい♪ 静音ワイヤレスマウス

Logicool Signature M750 を見る

※ Amazon広告リンク