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 {
    東京, 神奈川, 名古屋, 大阪;
}