如何将Map<key,value>转换为List<value>?我应该遍历所有映射值并将其插入列表吗?


当前回答

使用Java 8 Streams API。

List<Value> values = map.values().stream().collect(Collectors.toList());

其他回答

List<Value> list = new ArrayList<Value>(map.values());

假设:

Map<Key,Value> map;

如果需要值的不可变副本:

List<Value> list = List.copyOf(map.values())

使用Java 8 Streams API。

List<Value> values = map.values().stream().collect(Collectors.toList());
    Map<String, Integer> map = new HashMap<String, Integer>();
    map.put("java", 20);
    map.put("C++", 45);

    Set <Entry<String, Integer>> set = map.entrySet();

    List<Entry<String, Integer>> list = new ArrayList<Entry<String, Integer>>(set);

我们可以在列表中同时使用键和值对。也可以通过迭代列表使用Map.Entry获取键和值。

public List<Object> convertMapToList(Map<Object, Object> map){
return new ArrayList<>(map.values());
}