Java 如何转换Iterable<;地图入口<;A、 B>&燃气轮机;映射<;A、 B>;用番石榴?

Java 如何转换Iterable<;地图入口<;A、 B>&燃气轮机;映射<;A、 B>;用番石榴?,java,guava,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()); } Iterable入口可编辑 Map aBMap=newHashMap(

我可以通过以下方式做到这一点:

Iterable<Map.Entry<A,B>> entryIterable
Map<A, B> aBMap = newHashMap();
for (Map.Entry<A, B> aBEntry : entryIterable) {
   aBMap.put(aBEntry.getKey() , aBEntry.getValue());
}
Iterable入口可编辑
Map aBMap=newHashMap();
for(Map.Entry异常进入:可进入){
put(aBEntry.getKey(),aBEntry.getValue());
}

使用番石榴有更简单的方法吗?

没有,这被拒绝了,请参阅:

Iterable
Iterable
Object[]
(交替键和值)或从
列表创建映射

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

只是简单一点:

ImmutableMap.Builder<A, B> builder = ImmutableMap.builder();
for (Map.Entry<A, B> entry : entries) {
  builder.put(entry); // no getKey(), no getValue()
}
return builder.build();
ImmutableMap.Builder=ImmutableMap.Builder();
对于(Map.Entry:entries){
builder.put(entry);//没有getKey(),没有getValue()
}
返回builder.build();

这已在Guava 19.0中实现,请参阅。

我认为没有。您会喜欢Java 8中的闭包。请注意,这已在中实现,并将包含在版本19.0中