我能够通过以下方式做到这一点:
Iterable<Map.Entry<A,B>> entryIterable
Map<A, B> aBMap = newHashMap();
for (Map.Entry<A, B> aBEntry : entryIterable) {
aBMap.put(aBEntry.getKey() , aBEntry.getValue());
}
使用Guava有更简单的方法吗?
答案 0 :(得分:6)
不,这被拒绝,请参阅Idea Graveyard:
根据
Iterable<Pair>
,Iterable<Map.Entry>
,Object[]
(交替密钥和值)或List<K>
+List<V>
强>请注意,我们仍然可以添加
ImmutableMap.copyOf(Iterable<Entry>)
。
答案 1 :(得分:1)
只是简单一点:
ImmutableMap.Builder<A, B> builder = ImmutableMap.builder();
for (Map.Entry<A, B> entry : entries) {
builder.put(entry); // no getKey(), no getValue()
}
return builder.build();
答案 2 :(得分:0)
这已在Guava 19.0中实现,请参阅ImmutableMap.copyOf(Iterable)。