将 Map (HashMap) 转换为 List 的 Java 程序

要理解此示例,您应该具备以下 Java 编程的知识:

示例 1:将 Map 转换为 List

import java.util.*;

public class MapList {

    public static void main(String[] args) {

        Map<Integer, String> map = new HashMap<>();
        map.put(1, "a");
        map.put(2, "b");
        map.put(3, "c");
        map.put(4, "d");
        map.put(5, "e");

        List<Integer> keyList = new ArrayList(map.keySet());
        List<String> valueList = new ArrayList(map.values());

        System.out.println("Key List: " + keyList);
        System.out.println("Value List: " + valueList);

    }
}

输出

Key List: [1, 2, 3, 4, 5]
Value List: [a, b, c, d, e]

在上面的程序中,我们有一个名为 map 键为 Integer 类型和值为 String 类型的 HashMap. 由于 map 包含一个键值对,我们需要两个列表来存储它们中的每一个,即 keyList 对应键和 valueList 对应值。

我们使用 mapkeySet() 方法来获取所有的键并创建了一个 ArrayList 键表。同样,我们使用 mapvalues() 方法来获取所有值并使用创建一个 ArrayList 值列表。

示例 2:使用流将 Map 转换为 List

import java.util.*;
import java.util.stream.Collectors;

public class MapList {

    public static void main(String[] args) {

        Map<Integer, String> map = new HashMap<>();
        map.put(1, "a");
        map.put(2, "b");
        map.put(3, "c");
        map.put(4, "d");
        map.put(5, "e");

        List<Integer> keyList = map.keySet().stream().collect(Collectors.toList());
        List<String> valueList = map.values().stream().collect(Collectors.toList());

        System.out.println("Key List: " + keyList);
        System.out.println("Value List: " + valueList);

    }
}

程序的输出与示例 1相同。

在上面的程序中,我们没有使用 ArrayList 构造函数,而是使用 stream() 将 map 转换为列表。

我们已经将键和值转换为流,并使用 collect() 传递 Collectors.toList() 作为参数的方法将其转换为列表。