示例 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。由于 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 转换为列表。
我们将键和值转换为 stream,然后通过传递 toList()
作为参数的 collect()
方法将其转换为列表。