【Java入門】Map(連想配列)のキーと値を取得する方法

Javaを使う上で、ListやMapなどのコレクションを扱う処理は必須と言えます。

しかし、MapはListに比べて値の設定方法がやや複雑で、値を取得する方法も異なります。この記事では、Mapの値を取得する方法について、以下の内容で解説していきます。

  • キーで値を取得する方法
  • キーを全て取得する方法
  • 値を全て取得する方法
  • キーと値のペア(Entry)を全て取得する方法
  • Listに変換して要素番号で値を取得する方法

今回はMapのキーや値を取得する方法についてわかりやすく解説していますので、ぜひ参考にしてください。

Map(連想配列)とは

Mapとは、キーと値をペアで保持するコレクションです。コレクションとは、後からサイズを変更できる動的配列のようなものです。値を追加する時にはキーを指定し、キーを使って値を検索したり取り出すことができます。

キーの重複は許されず、キーと値は参照型のみ持つことができます。Mapは連想配列とも呼ばれます。

キーで値を取得する方法

Mapの値を取得するには、getメソッドを使用してMapのキーを指定し、キーに紐付いた値を取得します。実際にMapでキーを指定して値を取得する方法を、以下に記述します。

サンプルプログラム:

import java.util.HashMap;
import java.util.Map;
 
public class Main {
 
    public static void main(String[] args) {
        // Mapの宣言
        Map<String, String> map = new HashMap<>();
        
        // Mapにキーと値を格納
        map.put("key1", "orange");
        map.put("key2", "apple");
        map.put("key3", "melon");
        
        // Mapからデータを取得する
        System.out.println(map.get("key1"));
        System.out.println(map.get("key2"));
        System.out.println(map.get("key3"));
    }
}

実行結果:

orange
apple
melon

紹介したサンプルコードでは、Map型の変数mapを宣言し、設定するキーとデータをString型で宣言しています。putメソッドを使用して、キー名とそれに紐づく値を格納しています。

putメソッドを使用して値を格納したら、getメソッドを使用してキーを指定することにより、格納した値を取り出すことができます。

キーを全て取得する方法

Mapのキーを全て取得するには、keySetメソッドを使用します。keySetメソッドはMapのキーをSet型で返すので、拡張for文を使って以下のように繰り返して取得することができます。

サンプルプログラム:

import java.util.HashMap;
import java.util.Map;

public class Main {

	public static void main(String[] args) {
		Map<String, String> map = new HashMap<>();
		map.put("samurai", "侍");
		map.put("engineer", "エンジニア");

		for (String key : map.keySet()) {
			System.out.println(key);
		}
	}

}

実行結果:

samurai
engineer

値を全て取得する方法

Mapの値を全て取得するには、valuesメソッドを使用します。valuesメソッドもMapの値をSet型で返すので、拡張for文を使って以下のように繰り返して取得することができます。

サンプルプログラム:

import java.util.HashMap;
import java.util.Map;

public class Main {

	public static void main(String[] args) {
		Map<String, String> map = new HashMap<>();
		map.put("samurai", "侍");
		map.put("engineer", "エンジニア");

		for(String val : map.values()){
		    System.out.println(val);
		}
	}

}

実行結果:

侍
エンジニア

キーと値のペア(Entry)を全て取得する方法

Mapのキーと値のペアはMap.Entryインタフェースで表されます。Map.EntryはgetKeyメソッドでキーを、getValueメソッドで値を取得することができます。MapのEntryを全て取得するには、entrySetメソッドを使用します。

entrySetメソッドはMapのEntryをSet型で返すので、拡張for文を使って以下のように繰り返して取得することができます。

サンプルプログラム:

import java.util.HashMap;
import java.util.Map;

public class Main {

	public static void main(String[] args) {
		Map<String, String> map = new HashMap<>();
		map.put("samurai", "侍");
		map.put("engineer", "エンジニア");

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

}

実行結果:

samurai:侍
engineer:エンジニア

Mapのキーや値を繰り返して取得する方法は、以下の記事でも詳しく解説しています!

【Java入門】Mapにfor文やforeachのループを使いキーと値を取得する
更新日 : 2019年4月12日

Listに変換して要素番号で値を取得する方法

ここではMapの応用的な使い方として、要素番号で値を取得する方法を説明します。Mapは説明したように、指定したキーに紐づく値を取得する方法が一般的です。

しかし、Mapを同じコレクションのListに変換すれば、要素番号を指定して値を取得することが可能となります。MapをListに変換するには、valuesメソッドを使用して以下のとおり記述します。

書き方:

List<値のデータ型> オブジェクト名 = new ArrayList<値のデータ型>(Map型のオブジェクト名.values());

valuesメソッドはMapに格納された全ての値を返します。Mapに格納した値をListに変換して、要素番号で値を取得する方法を以下に記述します。

サンプルプログラム:

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
 
public class Main {
 
    public static void main(String[] args) {
        // Mapの宣言
        Map<String, String> map = new HashMap<>();
        
        // MAPにデータを格納
        map.put("key1", "apple");
        map.put("key2", "orange");
        map.put("key3", "melon");
        
        // Listを宣言し、valuesメソッドを使用してMapの値を取得する
        List<String> list = new ArrayList<>(map.values());
        
        // 要素番号を指定してListの値を取得する
        System.out.println(list.get(0));
        System.out.println(list.get(1));
        System.out.println(list.get(2));
    }
}

実行結果:

orange
apple
melon

紹介したサンプルでは、先ほどと同じくMap型の変数mapを宣言し、格納するキーと値をString型で指定しています。putメソッドを使用して、キー名称とそれに紐づくデータを格納しています。

次に、ArrayListクラスのList型の変数listを宣言し、valuesメソッドを使用してMapをListに変換しています。Listのgetメソッドで要素数を指定し、値を取得することが可能になります。

要素の追加などMap(連想配列)について

要素の追加やソートなどMap(連想配列)の使い方については、以下の記事にまとめていますのでぜひ参考にしてくださいね!

【Java入門】Mapの使い方総まとめ(HashMapで初期化、値のソート)
更新日 : 2019年5月22日

まとめ

いかがでしたか?Mapのキーや値を取得する方法や、MapをListに変換して要素番号を指定して値を取得できることがわかりました。応用的な使い方をすれば、ListやMapは更に便利になります。

もしMapから値を取得する方法を忘れてしまったら、この記事を思い出してくださいね!

LINEで送る
Pocket

「プログラミング、右も左もわからない…」という方にオススメ

当プログラミングスクール「侍エンジニア塾」では、これまで6000人以上のエンジニアを輩出してきました。

その経験を通してプログラミング学習に成功する人は、「目的目標が明確でそれに合わせた学習プランがあること」「常に相談できる人がそばにいること」「自己解決能力が身につくこと」この3つが根付いている傾向を発見しました。

侍エンジニア塾は上記3つの成功ポイントを満たすようなサービス設計に磨きをかけております。

cta_under_bnr

「自分のスタイルや目的に合わせて学習を進めたいな」とお考えの方は、ぜひチェックしてみてください。

書いた人

中沢 丈

中沢 丈

フリーランスエンジニア。
システム開発からコンテンツ作成まで幅広く対応します。

連絡先はこちらです。
[email protected]