跳到主要内容

Java 程序:将 Map (HashMap) 转换为列表

要理解此示例,你应该具备以下 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 映射。由于 map 包含键、值对,我们需要两个列表来分别存储它们,分别命名为 keyList(用于键)和 valueList(用于值)。

我们使用 map 的 keySet() 方法获取所有键,并从中创建了一个 ArrayList keyList。同样地,我们使用 map 的 values() 方法获取所有值,并从中创建了一个 ArrayList valueList

示例 2:使用 stream 将 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() 方法传递 CollectorstoList() 作为参数,将其转换为列表。