原文: https://www.programiz.com/java-programming/examples/convert-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的整数到字符串的映射。 由于map包含键值对,因此我们需要两个列表来存储它们,分别是keyList(用于键)和valueList(用于值)。
我们使用map的keySet()方法获取所有键,并从中创建了一个ArrayList keyList。 同样,我们使用map的values()方法来获取所有值,并从中创建一个ArrayList valueList。
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()方法将键和值转换为流,并将其转换为列表。