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