我没有找到这样的多重映射构造...当我想这样做时,我会迭代映射,并填充多重映射。还有其他办法吗?
final Map<String, Collection<String>> map = ImmutableMap.<String, Collection<String>>of(
"1", Arrays.asList("a", "b", "c", "c"));
System.out.println(Multimaps.forMap(map));
final Multimap<String, String> expected = ArrayListMultimap.create();
for (Map.Entry<String, Collection<String>> entry : map.entrySet()) {
expected.putAll(entry.getKey(), entry.getValue());
}
System.out.println(expected);
第一个结果是{1=[[a, b, c, c]]}
但我期望{1=[a, b, c, c]}
假设你有
Map<String, Collection<String>> map = ...;
Multimap<String, String> multimap = ArrayListMultimap.create();
那么我相信这是你能做的最好的事情
for (String key : map.keySet()) {
multimap.putAll(key, map.get(key));
}
或者更优化,但更难阅读
for (Entry<String, Collection<String>> entry : map.entrySet()) {
multimap.putAll(entry.getKey(), entry.getValue());
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)