[Java]Map(マップ)をリスト(List)に変換するには?

Java

どうも、ちょげ(@chogetarou)です。

Map(マップ)をリスト(List)に変換する方法を紹介します。

スポンサーリンク

方法

インターフェース, インターネット, プログラム, ブラウザ, Www

Map(マップ)をリスト(List)に変換する方法は、3つあります。

キーと値のペアをリストに変換

1つ目は、キー(Key)と値(Value)のペアをリストに変換する方法です。

まず、new ArrayList()のように、リストをインスタンス化します。

リストをインスタンス化する際、引数でMapからentrySet()を呼び出します。

List<Object> entries = new ArrayList(map.entrySet());

上記のnew ArrayList()は、entrySet()を呼び出したMap(マップ)の全ての要素をリストとして取得します。

使用例

import java.util.*;
public class Main {
    public static void main(String[] args) throws Exception {
        Map<String, Integer> numbers = new HashMap<String, Integer>();
        numbers.put("one", 1);
        numbers.put("two", 2);
        numbers.put("three", 3);
        numbers.put("four", 4);
        numbers.put("five", 5);
        
        List<Object> entries = new ArrayList(numbers.entrySet());
        
        for (Object entry : entries) {
            System.out.println(entry);
        }
    }
}
出力:
four=4
one=1
two=2
three=3
five=5

キー(Key)をリストに変換

2つ目は、Mapのキー(Key)をリストに変換する方法です。

まず、new ArrayList()のように、リストのインスタンスを生成します。

そして、インスタンス生成時の引数で、MapからkeySet()を呼び出します。

//T=キーの型
List<T> keys = new ArrayList<T>(map.keySet());

上記のnew ArrayList()は、keySet()を呼び出したMap(マップ)の全てのキーをリストとして取得します。

使用例

import java.util.*;
public class Main {
    public static void main(String[] args) throws Exception {
        Map<String, Integer> numbers = new HashMap<String, Integer>();
        numbers.put("one", 1);
        numbers.put("two", 2);
        numbers.put("three", 3);
        numbers.put("four", 4);
        numbers.put("five", 5);
        
        List<String> keys = new ArrayList<String>(numbers.keySet());
        
        for (String key : keys) {
            System.out.println(key);
        }
    }
}
出力:
four
one
two
three
five

値(value)をリストに変換

3つ目は、値(value)をリストに変換する方法です。

まず、new ArrayList()のように、リストのインスタンスを生成します。

そして、インスタンス生成時の引数で、Mapからvalues()を呼び出します。

//T=値の型
List<T> keys = new ArrayList<T>(map.values());

上記のnew ArrayList()は、values()を呼び出したMap(マップ)の全ての値をリストとして取得します。

使用例

import java.util.*;
public class Main {
    public static void main(String[] args) throws Exception {
        Map<String, Integer> numbers = new HashMap<String, Integer>();
        numbers.put("one", 1);
        numbers.put("two", 2);
        numbers.put("three", 3);
        numbers.put("four", 4);
        numbers.put("five", 5);
        
        List<Integer> values = new ArrayList(numbers.values());
        
        for (int value : values) {
            System.out.println(value);
        }
    }
}
出力:
4
1
2
3
5

まとめ

Map(マップ)をリスト(List)に変換する方法は、次の3つです。

  • キーと値のペアをリストに変換する方法
    List<Object> entries = new ArrayList(map.entrySet());
  • キーをリストに変換する方法
    List<T> keys = new ArrayList<T>(map.keySet());
  • 値をリストに変換する方法
    List<T> keys = new ArrayList<T>(map.values());

コメント

タイトルとURLをコピーしました