如何使用Guava将Iterable <Map.Entry <A,B >>转换为Map <A,B>?

mot*_*ota 4 java guava

通过执行以下操作,我能够做到这一点:

Iterable<Map.Entry<A,B>> entryIterable
Map<A, B> aBMap = newHashMap();
for (Map.Entry<A, B> aBEntry : entryIterable) {
   aBMap.put(aBEntry.getKey() , aBEntry.getValue());
}
Run Code Online (Sandbox Code Playgroud)

使用Guava有更简单的方法吗?

maa*_*nus 6

不,这被拒绝,请参阅Idea Graveyard:

从创建地图Iterable<Pair>,Iterable<Map.Entry>,Object[](交替键和值),或从List<K>+List<V>

请注意,我们仍然可以添加ImmutableMap.copyOf(Iterable<Entry>).

  • 请注意,这是在[问题320](https://code.google.com/p/guava-libraries/issues/detail?id=320)中实现的,并将包含在19.0版中 (2认同)