スポンサーリンク
Java

【Java】Mapまとめ〜初期化からループ処理など〜

Java

Mapの使用方法について解説しています。

「java.util.Map」のインポートが必要なのでお忘れなく。

Mapの使い方

Mapは「キー(key)」、「バリュー(value)」のセットでデータを格納します。

インスタンス化

Map<キーの型, バリューの型> 変数名 = new HashMap<キーの型, バリューの型>();

HashMapでよく利用するメソッドは以下の通りです。

メソッド説明
put(K, V)Mapに対してキーバリューのペアを格納
get(K)指定したキーに対するバリューを取得
size()格納されているデータ数を返却

サンプルコード

import java.util.Map;

public class Main {
    public static void main (String[] args) {
        // Mapを宣言する
        Map<Integer, String> likeColor = new HashMap<Integer, String>();
        // データの追加を行う
        likeColor.put(1, "Blue");
        likeColor.put(2, "Yellow");
        likeColor.put(3, "Green");

        // バリューの取得
        String color = likeColor.get(1));
        System.out.println(color);
        System.out.println(likeColor.get(2));
        System.out.println(likeColor.get(3));

        // 既存キーを再度putするとバリューが上書きされます
        likeColor.put(3, "Red");
        likeColor.put(4, "Black");

        System.out.println("Mapのサイズ:" + likeColor.size());
        System.out.println(likeColor.get(3));
        System.out.println(likeColor.get(4));
    }
}
実行結果
Blue
Yellow
Green
Mapのサイズ:4
Red
Black

Mapのループ処理

Mapに対して繰り返し処理の書き方は複数あります。

その中でも特によく使用されるものを

拡張for文で順に取得し表示を行います。

keySetメソッドでキーをループ

keySetメソッドを使用することで

Mapのキーを取得できます。

Map<String, String> map new HashMap<String, String>();
map.put("red", "tomato");
map.put("yellow", "banana");

for (String key : map.keySet()) {
    System.out.println(key):
}
実行結果
red
yellow

valuesメソッドで値をループ

valuesメソッドを使用してMapの値を取得します。

Map<String, String> map = new HashMap<String, String>();
map.put("red", "tomato");
map.put("yellow", "banana");

for (String value : map.values()) {
    System.out.println(value);
}
実行結果
tomato
banana

entrySetメソッドでキーバリューをループ

entrySetメソッドを利用することで

キーとバリューをセットで取得できます。

キーはgetKeyメソッドを利用し、

バリューはgetValueメソッドを利用することで

それぞれの値を取得することができます。

Map<String, String> map = new HashMap<String, String>();
map.put("red", "tomato");
map.put("yellow", "banana");

for (Map.Entry<String, String> entry : map.entrySet()) {
    System.out.println(entry.getKey() + " = " + entry.getValue());
}
実行結果
red = tomato
yellow = banan