[ Java ] HashMap でキー・バリュー形式でデータを管理する

Pocket

ここでは、HashMap を使用してキー・バリュー形式でデータ管理を行う簡単なサンプルコードを掲載しています。Java に限らず多くの言語でも同じようなクラスが存在します。.NetFramework だと、Dictionary ジェネリッククラスが似ています。

スポンサーリンク

HashMap の簡単な使い方 ( 追加 / 削除 / ループ )

HashMap の使用例になります。詳細はコメントを参照ください。

/*
 * キー(String)と値(Integer)のハッシュマップを作成する
 */
HashMap<String, Integer> students = new HashMap<String, Integer>();

students.put("安倍", 55);  // 安倍さん55歳をHashMapに追加
students.put("鳩", 95);    // 鳩さん95歳をHashMapに追加

// 指定したキーを持つ要素が存在するか確認
if(students.containsKey("鳩")) {
    // 間違えて登録したので削除
    students.remove("鳩");
}

students.put("小泉", 65); // 小泉さん65歳をHashMapに追加
students.put("麻生", 75); // 麻生さん75歳をHashMapに追加

// ハッシュマップのキーと値をすべて出力する
for (Entry<String, Integer> e : students.entrySet()) {

    System.out.println(e.getKey() + " : " + e.getValue());

    // 値を100で更新する
    e.setValue(100);
}

/*
 * 出力結果
 * -----------------
 * 小泉 : 65
 * 麻生 : 75
 * 安倍 : 55
 */

// 上記で更新した値が反映されているか確認する
for (Entry<String, Integer> e : students.entrySet()) {
    System.out.println(e.getKey() + " : " + e.getValue());
}

/*
 * 出力結果
 * -----------------
 * 小泉 : 100
 * 麻生 : 100
 * 安倍 : 100
 */

注意点

上記の出力結果からわかるように、put メソッドによって追加した要素が追加した順番で HashMap クラスで管理されているわけではありません。マニュアルにも「その順序を常に一定に保つことを保証しない」と記載されています。追加した順序を維持したまま要素を管理したい場合には HashMap ではなく、LinkedHashMap の代替利用を考えたほうがよいでしょう。

参考

 

スポンサーリンク


Pocket

Leave a Comment

Your email address will not be published. Required fields are marked *