JavaのHashMapの使い方!getやputなどのオペレーション。

JavaのHashMapの使い方!getやputなどのオペレーション。

この記事では、JavaのHashMapとその他のMapオブジェクトの特徴や使い方を勉強していく。

HashMapとは?

キーと値をペアとして格納するオブジェクト。使い勝手がいいのでよく使われる。

intやfloatといったプリミティブ型は使用することは出来ないので、IntegerやFloatといったラッパークラスを使用する。

HashMapではキーの重複は許されない。重複するキーを使用した場合は、そのキーの以前の値が上書きされるので注意が必要だ。

Mapオブジェクト

Javaではよく使われる。

HashMapの使い方

では、HashMapの使い方を下のサンプルコードとともに勉強していこう。

import java.util.HashMap;

class HashMapExample {

    // 顧客の名前と住んでいる都道府県をマッピングした例
    private static HashMap<String, Prefecture> namePrefectureMap = new HashMap<String, Prefecture>();

    private static void prepareSampleData() {
        // putを使ってキーと値を代入する。
        namePrefectureMap.put("大谷 宏之", Prefecture.名古屋);
        namePrefectureMap.put("芳賀 浩章", Prefecture.大阪);
        namePrefectureMap.put("澤崎 克成", Prefecture.東京);
        namePrefectureMap.put("神戸 花絵", Prefecture.大阪);
        namePrefectureMap.put("大島 美幸", Prefecture.名古屋);
    }

    public static void main(String[] args) {
        HashMapExample.prepareSampleData();

        // mapに納められているキーと値を確認したい場合はforeachを使うと便利。
        namePrefectureMap.forEach((key, value)-> System.out.println(key + " → " +  value));

        // 値を取り出したい時はgetを使う。
        System.out.println("神戸 花絵 → " + namePrefectureMap.get("神戸 花絵"));

        // getで存在しないキーを使った場合はnullが返される。
        System.out.println("安坂 浅美 → " + namePrefectureMap.get("安坂 浅美"));

        // getOrDefaultを使えば、キーが存在しなかった場合のためのデフォルト値を指定できる。
        System.out.println("安坂 浅美 → " + namePrefectureMap.getOrDefault("安坂 浅美", Prefecture.東京));

        // 値を上書きしたい時もputを使用する。
        namePrefectureMap.put("芳賀 浩章", Prefecture.東京);

        // 値を削除する時はremoveを使う。
        namePrefectureMap.remove("澤崎 克成");

        // キーがmapに格納されているか確認する時はcontainsKeyを使用する。
        System.out.println("大島 美幸::" + namePrefectureMap.containsKey("大島 美幸"));

        // すべての値をリセットしたい時はclearを使う。
        namePrefectureMap.clear();
    }
}

enum Prefecture {
    東京, 神奈川, 名古屋, 大阪;
}

HashMapの宣言

HashMapの代入

HashMapの応用的な使い方

HashMapの並び替え

その他のmapオブジェクト

TreeMap