ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# Java 程序:将映射(`HashMap`)转换为列表 > 原文: [https://www.programiz.com/java-programming/examples/convert-map-list](https://www.programiz.com/java-programming/examples/convert-map-list) #### 在该程序中,您将学习将 Java 映射转换为列表的各种技巧。 ## 示例 1:将映射转换为列表 ```java 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); } } ``` 运行该程序时,输出为: ```java Key List: [1, 2, 3, 4, 5] Value List: [a, b, c, d, e] ``` 在上面的程序中,我们有一个名为`map`的整数到字符串的映射。 由于`map`包含**键值**对,因此我们需要两个列表来存储它们,分别是`keyList`(用于键)和`valueList`(用于值)。 我们使用`map`的`keySet()`方法获取所有键,并从中创建了一个`ArrayList keyList`。 同样,我们使用`map`的`values()`方法来获取所有值,并从中创建一个`ArrayList valueList`。 * * * ## 示例 2:使用流将映射转换为列表 ```java 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()`将映射转换为列表。 我们已经通过传递`Collectors`的`toList()`作为参数的`collect()`方法将键和值转换为流,并将其转换为列表。