如何将'Collection <map <string,string >>'转换为'Map <string,string>'?

时间:2019-03-06 10:38:34

标签: java collections

我想从componentDidMount(){ this.usrs(usrs).then(() => { // Your functions completely finished }) .catch(err => { // There was an error }); this.doSomethingElse(); } 转换为Collection<Map<String,String>>

当我尝试这样做时,

Map<String,String>

在哪里, 地图的类型为Map<String,String> m = (Map<String,String>)map.values();

我要

  

java.lang.ClassCastException:无法将java.util.TreeMap $ Values强制转换为java.util.Map

它想说什么?我找不到它,如何正确地从Map<String,Map<String,String>>转换为Collection<Map<String,String>>

2 个答案:

答案 0 :(得分:0)

您可以使用此小片段将所有值放入一个映射中:

Map<String, String> result = new TreeMap<>();
for(Map<String, String> value : map.values()) {
    result.putAll(value);
}

尽管这样做只会用新值覆盖重复的键。

答案 1 :(得分:0)

只要是集合,就应该将其视为对象的集合。 然后进行迭代,对于每个对象,应将其放入地图中

 public Map<String, String> getMapsFromArrayOfMaps( Collection<Map<String,String>> maps ) {
    Map<String, String> result = new HashMap<>();      
    maps.forEach(map->result.putAll(map));        
    return result ;

}