如何创建具有多个值映射到List <map <string,object>中的同一键的映射?

时间:2019-04-17 18:46:40

标签: java spring-boot oracle11g hashmap

我在Map列表中提取了一个数据,该数据具有与同一键关联的多个值。现在,我需要从dbvalues(这是地图列表)中提取键值对,并将其放入Map> 但是,我将如何从地图列表中提取数据,以便放入该地图?

vee-validate

2 个答案:

答案 0 :(得分:2)

您可以遍历.entrySet()的{​​{1}},打印每个键,然后将值(Map<String, List<String>>)与List<String>

连接
,

答案 1 :(得分:0)

您可以使用番石榴的com.google.common.collect.ListMultimap

来自com.google.common.collect.Multimap的javadoc:

  

这是一个将键映射到值的集合,类似于java.util.Map,   但其中每个键可能与多个值相关联。您可以   将多图的内容可视化为从键到非空的映射   值的集合。

创建Multimap的最直接的方法是使用MultimapBuilder,它使您可以配置键和值的表示方式。例如:

// creates a ListMultimap wich will behave like an Map<String,ArrayList<Object>>
ListMultimap<String, Object> listMultimap = MultimapBuilder.hashKeys().arrayListValues().build();

一旦有了多图,就可以将键,值对放入for循环中:

for(final Map<String,Object> map : dbvalues){
    for(final Entry<String,Object> entry : map.entrySet()){
        listMultimap.put( entry.getKey(), entry.getValue() );
    }
}

有关多地图的更多信息:https://github.com/google/guava/wiki/NewCollectionTypesExplained#multimap