本文へスキップ
BecomeCoder

Javaオブジェクト指向コース · 第6章 コレクション ― たくさんのデータをまとめて扱う · レッスン23

HashMap ― キーと値のペア

ブラウザで完結

導入

「名前から点数を調べたい」「商品名から値段を調べたい」——こんなふうに 「何かをキーにして、対応する値を取り出したい」 ときは、ArrayList ではなく HashMap が向いています。

説明

HashMap<キーの型, 値の型> は、キーと値のペア を保存する入れ物です。

import java.util.HashMap;

public class Main {
    public static void main(String[] args) {
        HashMap<String, Integer> scores = new HashMap<>();
        scores.put("太郎", 80);
        scores.put("花子", 90);

        System.out.println(scores.get("太郎"));
        System.out.println(scores.containsKey("次郎"));

        for (String name : scores.keySet()) {
            System.out.println(name + ":" + scores.get(name));
        }
    }
}
  • .put(キー, 値) … キーと値のペアを登録します。
  • .get(キー) … キーに対応する値を取り出します。登録されていないキーを指定すると null が返ります。
  • .containsKey(キー) … 指定したキーが登録されているか true/false で返します。
  • .keySet() … 登録されている全キーの集合を返します。拡張forと組み合わせて全ペアを走査するのによく使います。

やってみよう

下のエディタで別のキーと値を put してみたり、get するキーを変えてみたりして実行し、結果を確認しましょう。

演習

HashMap<String, Integer> prices(値段表)を作り、"本"500"ペン"100 を登録してください。"本" の値段を表示し、続けて "消しゴム" が登録されているか(containsKey)を表示してください。

ヒント1を見る

prices.put("本", 500); prices.put("ペン", 100); のあと System.out.println(prices.get("本"));

ヒント2を見る

System.out.println(prices.containsKey("消しゴム"));(登録していないので false になります)。

実際に動かしてみよう

下のエディタにJavaを書いて「実行」を押すと、学習用シミュレータが System.out.println の出力を表示します(本物のJVMではなく、教材の範囲を再現した軽量エンジンです)。クラス・継承・コレクションなども動きます。Scanner で入力を読む例は「標準入力」欄に値を入れてください。本文の例を書き換えて動かしてみましょう(Stream・ラムダ・スレッド・ファイル入出力など一部の機能は対象外です)。

Java — ブラウザ内で実行(学習用シミュレータ)

Javaの教材サブセットを動かす学習用シミュレータを読み込みます(本物のJVMではなく、動きを再現した軽量な自作エンジンです)。
スクロールして表示された時点でも自動で読み込まれます。