【Java】keySetを使って、マップ(Map)のキー(key)を順番に取得する!
マップ(Map)のキー(key)を順番に取得するにはMapクラスのkeySetメソッドを使用します。
keySetメソッドはMapのキーをSet型で返すので、まとめてキーを取り出すことができれば、for文を使ってキーを1つずつとりだすこともできます。
今回はkeySetメソッドを使って、以下の場合でマップ(Map)のキー(key)を順番に取得していきます。
⚫︎ マップからキーを順番にまとめて取得する場合
⚫︎ マップからキーを1つずつ順番に取得する場合
また、
⚫︎ マップから値だけを順番に取得しする場合
⚫︎ マップからキーと値のセットを順番に取得する場合
についても紹介していきます。
目次
keySetメソッドとは
MapクラスのkeySetメソッドはマップ内のキーを順番に取得することができます。
keySetメソッドの書き方
keySetメソッドの構文は下記となります。
1 |
Map変数.keySet(); |
keySetの前にMap変数を指定することで指定したMap変数のキーを取得することができます。
マップからキーだけを順番に取得するサンプルコード
キーだけを順番にまとめて取り出した場合と1つずつ順番に取得した場合のサンプルコードを紹介します。
キーを順番にまとめて取得する場合
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
// マップのキーを順番に取得する import java.util.HashMap; import java.util.Map; public class Main { public static void main(String[] args) throws Exception { Map<Integer, String> map1 = new HashMap<Integer, String>(); // マップに値を格納する map1.put(Integer.valueOf(1), "テレビ"); map1.put(Integer.valueOf(2), "冷蔵庫"); map1.put(Integer.valueOf(3), "掃除機"); map1.put(Integer.valueOf(4), "電子レンジ"); map1.put(Integer.valueOf(5), "炊飯器"); // 値だけ順番に取得する System.out.println("キー: " + map1.keySet()); } } |
出力結果
キー: [1, 2, 3, 4, 5]
keySetメソッドを使ってマップのキーを順番にまとめて取得しました。
キーを1つずつ順番に取得する場合
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
// マップのキーを順番に取得する import java.util.HashMap; import java.util.Map; public class Main { public static void main(String[] args) throws Exception { Map<Integer, String> map2 = new HashMap<Integer, String>(); // マップに値を格納する map2.put(Integer.valueOf(1), "テレビ"); map2.put(Integer.valueOf(2), "冷蔵庫"); map2.put(Integer.valueOf(3), "掃除機"); map2.put(Integer.valueOf(4), "電子レンジ"); map2.put(Integer.valueOf(5), "炊飯器"); // キーだけ順番に取得する for (Integer key : map2.keySet()) { System.out.println("キー:" + key); } } } |
出力結果
キー:1
キー:2
キー:3
キー:4
キー:5
for文とkeySetメソッドを使ってマップのキーを1つずつ順番に取得しました。
マップから値だけを順番に取得する場合
値だけを順番に取得するにはvaluesメソッドを使用します。
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
// マップのキーを順番に取得する import java.util.HashMap; import java.util.Map; public class Main { public static void main(String[] args) throws Exception { Map<Integer, String> map3 = new HashMap<Integer, String>(); // マップに値を格納する map3.put(Integer.valueOf(1), "テレビ"); map3.put(Integer.valueOf(2), "冷蔵庫"); map3.put(Integer.valueOf(3), "掃除機"); map3.put(Integer.valueOf(4), "電子レンジ"); map3.put(Integer.valueOf(5), "炊飯器"); // 値だけ順番に取得する for (String value : map3.values()) { System.out.println("値:" + value); } } } |
出力結果
値:テレビ
値:冷蔵庫
値:掃除機
値:電子レンジ
値:炊飯器
マップからキーと値のセットを順番に取得する場合
キーと値のセットを順番に取得するにはentrySetメソッドを使用します。
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
// マップのキーを順番に取得する import java.util.HashMap; import java.util.Map; public class Main { public static void main(String[] args) throws Exception { Map<Integer, String> map4 = new HashMap<Integer, String>(); // マップに値を格納する map4.put(Integer.valueOf(1), "テレビ"); map4.put(Integer.valueOf(2), "冷蔵庫"); map4.put(Integer.valueOf(3), "掃除機"); map4.put(Integer.valueOf(4), "電子レンジ"); map4.put(Integer.valueOf(5), "炊飯器"); //キーと値のセットを順番に取得する for (Map.Entry<Integer, String> entry : map4.entrySet()) { System.out.println( "キー:" + entry.getKey() + ", 値:" + entry.getValue()); } } } |
出力結果
キー:1, 値:テレビ
キー:2, 値:冷蔵庫
キー:3, 値:掃除機
キー:4, 値:電子レンジ
キー:5, 値:炊飯器
今回のポイント
keySetでマップのキーを順番に取得
マップのキーを順番に取得するにはMapクラスのkeySetメソッドを使用する。
⚫︎ MapクラスのkeySetメソッドでマップのキーの集合を取得する
⚫︎ マップのキーを順番に取得するには「拡張for文」を使用する
⚫︎ Mapクラスのvaluesメソッドでマップ内に格納されている値を取得する
⚫︎ MapクラスのentrySetメソッドで、マップ内に格納されているキーと値を同時に取得する
ST
株式会社flyhawkのSTです。フライテックメディア事業部でのメディア運営・ライター業務なども担当。愛機はMac Book AirとThinkPad。好きな言語:swift、JS系(Node.js等)。好きなサーバー:AWS。受託開発やプログラミングスクールの運営をしております。ご気軽にお問い合わせください。