カテゴリ: Javaのマップ 更新日: 2026/03/17

JavaのHashMapでキーや値を検索する方法を完全解説 containsKeyとcontainsValueの使い方入門

2024
Java の HashMap から特定のキーや値を検索する(containsKey, containsValue)

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

生徒

「JavaのHashMapで、特定のキーがあるかどうかを調べる方法はありますか?」

先生

「ありますよ。JavaのMapインターフェースに用意されているcontainsKeyメソッドを使えば、キーの存在チェックができます。」

生徒

「値が含まれているかどうかも確認できますか?」

先生

「はい。containsValueメソッドを使えば、HashMapに特定の値が含まれているかどうかも簡単に検索できます。基本から順番に見ていきましょう。」

1. HashMapとは何かを理解しよう

1. HashMapとは何かを理解しよう
1. HashMapとは何かを理解しよう

JavaのHashMapは、キーと値をセットで管理するデータ構造です。Javaプログラミング初心者にとっては、配列やListと並んで重要なコレクションのひとつです。HashMapはjava.utilパッケージに含まれており、キーを指定して高速に値を取得できる特徴があります。

例えば、社員番号をキーにして社員名を値として管理する、商品コードをキーにして価格を値として保存する、といった使い方ができます。JavaのMapインターフェースを実装している代表的なクラスがHashMapです。

2. containsKeyでキーの存在を検索する方法

2. containsKeyでキーの存在を検索する方法
2. containsKeyでキーの存在を検索する方法

JavaのHashMapで特定のキーが存在するか確認したい場合は、containsKeyメソッドを使います。戻り値はboolean型で、キーが存在すればtrue、存在しなければfalseを返します。


import java.util.HashMap;

public class ContainsKeyExample {
    public static void main(String[] args) {
        HashMap<String, String> map = new HashMap<>();

        map.put("A001", "田中");
        map.put("A002", "佐藤");

        boolean result = map.containsKey("A001");
        System.out.println(result);
    }
}

実行結果は次の通りです。


true

このように、指定したキーがHashMapに登録されているかどうかを簡単にチェックできます。JavaのMap検索処理では、まずcontainsKeyで確認してからgetで値を取り出すのが安全な書き方です。

3. containsValueで値の存在を検索する方法

3. containsValueで値の存在を検索する方法
3. containsValueで値の存在を検索する方法

次に、JavaのHashMapに特定の値が含まれているかどうかを確認する方法です。containsValueメソッドを使用します。こちらも戻り値はboolean型です。


import java.util.HashMap;

public class ContainsValueExample {
    public static void main(String[] args) {
        HashMap<String, Integer> priceMap = new HashMap<>();

        priceMap.put("りんご", 100);
        priceMap.put("みかん", 120);

        boolean result = priceMap.containsValue(120);
        System.out.println(result);
    }
}

true

containsValueは、HashMapの中を順番に調べるため、キー検索よりも処理時間がかかる場合があります。Javaパフォーマンスの観点では、できるだけキーで検索する設計にすることが重要です。

Javaをこれから始める人や、 オブジェクト指向の考え方を基礎から理解したい人には、 定番の入門書がこちらです。

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

※ Amazon広告リンク

4. containsKeyとgetを組み合わせた安全な書き方

4. containsKeyとgetを組み合わせた安全な書き方
4. containsKeyとgetを組み合わせた安全な書き方

Java初心者がよくやってしまうのが、存在しないキーに対してgetを呼び出してしまうことです。存在しない場合はnullが返るため、NullPointerExceptionの原因になります。


import java.util.HashMap;

public class SafeGetExample {
    public static void main(String[] args) {
        HashMap<String, String> map = new HashMap<>();
        map.put("001", "山本");

        if (map.containsKey("002")) {
            System.out.println(map.get("002"));
        } else {
            System.out.println("キーが存在しません");
        }
    }
}

キーが存在しません

このように、JavaのHashMap検索ではcontainsKeyを活用することで、エラーを防ぐことができます。実務でもよく使われる基本テクニックです。

5. ループと組み合わせた値検索の応用

5. ループと組み合わせた値検索の応用
5. ループと組み合わせた値検索の応用

JavaのHashMapで特定の条件に合う値を探したい場合は、entrySetを使ってループ処理を行います。containsValueでは細かい条件検索ができないため、応用的な検索では繰り返し処理を使います。


import java.util.HashMap;
import java.util.Map;

public class LoopSearchExample {
    public static void main(String[] args) {
        HashMap<String, Integer> scoreMap = new HashMap<>();
        scoreMap.put("鈴木", 80);
        scoreMap.put("高橋", 90);

        for (Map.Entry<String, Integer> entry : scoreMap.entrySet()) {
            if (entry.getValue() >= 90) {
                System.out.println(entry.getKey() + "は高得点です");
            }
        }
    }
}

高橋は高得点です

この方法を使えば、JavaのMap検索処理をより柔軟に実装できます。条件付き検索やフィルタ処理にも応用できます。

6. containsKeyとcontainsValueの違いと注意点

6. containsKeyとcontainsValueの違いと注意点
6. containsKeyとcontainsValueの違いと注意点

JavaのHashMapにおけるcontainsKeyとcontainsValueの最大の違いは、検索対象です。containsKeyはキーを高速に検索できます。一方、containsValueはすべての要素を順番に確認するため、データ件数が多いと処理が遅くなる可能性があります。

Javaパフォーマンスチューニングの観点では、設計段階でキーを工夫することが重要です。頻繁に検索する項目はキーにすることで、効率の良いMap検索が実現できます。

また、HashMapはキーの重複を許しませんが、値は重複可能です。そのため、値検索はあいまいになる場合があります。Javaコレクションフレームワークの特徴を理解して使い分けることが大切です。

7. Java初心者が覚えておきたいMap検索の基本まとめポイント

7. Java初心者が覚えておきたいMap検索の基本まとめポイント
7. Java初心者が覚えておきたいMap検索の基本まとめポイント

JavaのHashMapでキーや値を検索する方法として、containsKeyとcontainsValueは非常に重要なメソッドです。Java基礎学習の段階で必ず理解しておきたい内容です。

キーの存在確認はcontainsKey、値の存在確認はcontainsValueを使います。安全に値を取得するにはcontainsKeyとgetを組み合わせます。より高度な検索を行う場合はentrySetを使ったループ処理を活用します。

Javaプログラミング初心者の方は、まずは小さなサンプルコードを書いて動作を確認しながら、HashMapの仕組みを理解していきましょう。Map検索処理は業務システム開発でも頻繁に使われる重要な技術です。

まとめ

まとめ
まとめ

今回は、JavaのHashMapでキーや値を検索する方法について、containsKeyとcontainsValueを中心に詳しく解説しました。HashMapはJavaのコレクションフレームワークの中でも特に使用頻度が高く、業務システム開発やWebアプリケーション開発、バッチ処理など幅広い場面で活用される重要なデータ構造です。Java初心者の方が基礎を固めるうえで、Map検索処理の理解は欠かせません。

まず、containsKeyは指定したキーがHashMapに存在するかどうかを高速に確認できるメソッドです。戻り値はboolean型で、trueまたはfalseを返します。Javaプログラミングにおいては、値を取得する前にcontainsKeyで存在確認を行うことで、nullによるエラーや想定外の動作を防ぐことができます。特にNullPointerException対策として、containsKeyとgetを組み合わせた安全な書き方は実務でも非常によく使われます。

次に、containsValueはHashMapに特定の値が含まれているかどうかを確認するためのメソッドです。ただし、containsValueは内部的にすべての要素を順番にチェックするため、データ件数が多い場合にはパフォーマンスに影響が出る可能性があります。Javaパフォーマンスを意識した設計では、検索頻度の高い項目をキーとして設計することが重要です。これはJava設計の基本であり、効率的なMap検索を実現するための大切な考え方です。

また、より複雑な条件で検索したい場合には、entrySetを利用したループ処理が有効です。for文や拡張for文を使うことで、キーと値の両方を同時に扱いながら条件分岐を行うことができます。これにより、点数が一定以上のデータだけを抽出する、特定の文字列を含むデータを探すなど、実践的なフィルタ処理を実装できます。JavaのHashMap応用テクニックとして、ぜひ身につけておきたい内容です。

ここで、HashMap検索処理の基本を整理してみましょう。キーの存在確認はcontainsKey、値の存在確認はcontainsValue、安全な値取得はcontainsKeyとgetの組み合わせ、条件付き検索はentrySetとループ処理。この四つのポイントを押さえることで、JavaのMap検索は確実に理解できます。Java初心者の方は、サンプルプログラムを繰り返し実行しながら、処理の流れを体で覚えることが上達への近道です。

まとめサンプルプログラム

最後に、containsKey、containsValue、entrySetを組み合わせた総合的なサンプルコードを確認してみましょう。JavaのHashMap検索処理を一度に復習できる内容になっています。


import java.util.HashMap;
import java.util.Map;

public class HashMapSearchSummaryExample {
    public static void main(String[] args) {

        HashMap<String, Integer> userScoreMap = new HashMap<>();

        userScoreMap.put("田中", 75);
        userScoreMap.put("佐藤", 88);
        userScoreMap.put("山本", 92);

        if (userScoreMap.containsKey("佐藤")) {
            System.out.println("佐藤の点数は" + userScoreMap.get("佐藤") + "です");
        }

        boolean hasHighScore = userScoreMap.containsValue(92);
        System.out.println("92点のデータは存在するか: " + hasHighScore);

        for (Map.Entry<String, Integer> entry : userScoreMap.entrySet()) {
            if (entry.getValue() >= 80) {
                System.out.println(entry.getKey() + "は80点以上です");
            }
        }
    }
}

佐藤の点数は88です
92点のデータは存在するか: true
佐藤は80点以上です
山本は80点以上です

このように、JavaのHashMap検索は基本メソッドを組み合わせることで、実務レベルの処理にも対応できます。Java基礎から一歩進んだ内容として、Map検索処理をしっかり理解しておきましょう。

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

生徒

JavaのHashMapでキーや値を検索する方法がよく分かりました。containsKeyはキーの存在確認、containsValueは値の存在確認ですね。

先生

その通りです。特にJava初心者のうちは、値を取得する前にcontainsKeyでチェックする習慣をつけると安全です。

生徒

containsValueは便利ですが、処理時間も意識した方がいいのですね。

先生

はい。Javaパフォーマンスを考えるなら、検索しやすいキー設計が重要です。また、複雑な条件検索ではentrySetとループ処理を使いましょう。

生徒

HashMap検索の基本が整理できました。JavaのMapインターフェースの理解も深まりました。

先生

素晴らしいですね。Javaのコレクションフレームワークを理解すれば、実務でも通用するコードが書けるようになります。引き続きサンプルコードを書いて練習していきましょう。

Javaのマップの一覧へ
新着記事
Java の HashMap から特定のキーや値を検索する(containsKey, containsValue)
JavaのHashMapでキーや値を検索する方法を完全解説 containsKeyとcontainsValueの使い方入門
Flutterのリスト表示を学ぼう!ListView・GridViewの使い方
Flutterのリスト表示をマスター!初心者向けListView・GridViewの使い方完全ガイド
Java の HashMap を作成してデータを追加・取得する方法
JavaのHashMapの使い方を完全解説!初心者でもわかる作成・追加・取得の基本
【AWS】S3のエラーコード一覧と原因・対処法【403・404・503など】
【AWS】S3のエラーコード一覧と原因・対処法【403・404・503などを徹底解説】
人気記事
インスタンスタイプの料金比較と最適な選び方(最新2025年版)
AWSのインスタンスタイプの料金比較と最適な選び方【2025年最新版】
【AWS】VPCエンドポイントとは?種類・使い方・S3連携まで完全解説
【AWS】VPCエンドポイントとは?種類・使い方・S3連携まで完全解説
【AWS】s3 cpコマンド完全ガイド!基本・recursive・exclude/includeも解説
【AWS】s3 cpコマンド完全ガイド!基本・recursive・exclude/includeも解説
【AWS】VPCの料金体系まとめ!無料枠・通信費・各種サービスごとの料金を徹底解説
【AWS】VPCの料金体系まとめ!無料枠・通信費・各種サービスごとの料金を徹底解説

🔌 USBポート不足を解消

Type-C 1本で拡張。
開発・作業環境を一気に快適に

UGREEN USB-Cハブを見る

※ Amazon広告リンク