guava:迭代Multimap的key->集合条目的最佳方法?

Jas*_*n S 11 loops multimap guava

我正在寻找相应的方法,用于Multimap迭代a的条目Map,即:

Map<K,V> map = ...;
for (Map.Entry<K,V> entry : map.entrySet())
{
    K k = entry.getKey();
    V v = entry.getValue();
}
Run Code Online (Sandbox Code Playgroud)

以下哪项更好?(或者更重要的是,有什么区别?)

Multimap<K,V> mmap = ...;
for (Map.Entry<K,Collection<V>> entry : mmap.asMap().entrySet())
{
    K k = entry.getKey();
    Collection<V> v = entry.getValue();
}
Run Code Online (Sandbox Code Playgroud)

要么

Multimap<K,V> mmap = ...;
for (K k : mmap.keySet())
{
    Collection<V> v = mmap.get(k);
}
Run Code Online (Sandbox Code Playgroud)

Kev*_*ion 13

它们都是有效的; 第二个往往更容易阅读(特别是因为你可以得到实际ListListMultimap等等),但第一个可能更有效(在某种程度上可能或可能不重要).