#16 Javaで学ぶ辞書型(マップ)の基本

Javaで名前と値の組み合わせを扱うには、HashMapというクラスを使います。この記事では、Javaにおける辞書に相当する使い方と、実務でよく使う操作を解説します。

HashMapを作ってみる

import java.util.HashMap;

HashMap<String, Integer> scores = new HashMap<>();
scores.put("太郎", 90);
scores.put("次郎", 85);

値を取り出す

int score = scores.get("太郎");

存在しないキーをget()で取得しようとするとnullが返るため、あらかじめcontainsKey()で確認するのが安全です。

if (scores.containsKey("次郎")) {
    // 処理
}

既定値をあらかじめ決めておきたい場合はgetOrDefaultが便利です。

int score = scores.getOrDefault("三郎", 0);

全てのキーと値を順に処理する

for (String key : scores.keySet()) {
    System.out.println(key + ": " + scores.get(key));
}

キーと値の両方を一度に取り出したい場合はentrySet()を使うと、get()を毎回呼び出す必要がなく効率的です。

for (Map.Entry<String, Integer> entry : scores.entrySet()) {
    System.out.println(entry.getKey() + ": " + entry.getValue());
}

Javaならではの注意点

HashMap<String, Integer>のように、キーと値の型を必ず指定する必要があります。プリミティブ型(int など)はそのまま使えず、Integerのような「オブジェクト版」の型を使う点も、以前のArrayListの記事と同様の注意点です。また、HashMapはキーの並び順を保証しないため、追加した順序を保ちたい場合はLinkedHashMap、キーの大小関係で自動的に並べ替えたい場合はTreeMapという代替クラスも用意されています。

まとめ

Javaの辞書はHashMapが基本で、型を明示して使います。containsKey()やgetOrDefaultで安全にキーを確認・取得し、entrySet()で効率よく繰り返し処理を行いましょう。


本ページはプロモーションを含みます。

参考書籍(PR)

Javaをもっと学びたい方には「スッキリわかるJava入門 第4版」がおすすめです。


PR

コードを書かずに自動化したい方へ

「学んだけど自分の作業に組み込む時間がない」という方向けに、ダブルクリックで動く Windows専用の自動化ツールをオーダーメイドで作成しています。気になる方は こちらをご覧ください。

コメント

このブログの人気の投稿

#25 Rustで学ぶAI API(ChatGPT等)の呼び出し方の基本

#8 C++で学ぶ文字列操作の基本

#16 TypeScriptで学ぶ辞書型(マップ)の基本