導入
「名前から点数を調べたい」「商品名から値段を調べたい」——こんなふうに 「何かをキーにして、対応する値を取り出したい」 ときは、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 になります)。