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

标签 guava loops multimap

我正在寻找相应的方式,为 Multimap , 迭代 Map 的条目,即:

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

以下哪个更好? (或者更重要的是,有什么区别?)
Multimap<K,V> mmap = ...;
for (Map.Entry<K,Collection<V>> entry : mmap.asMap().entrySet())
{
    K k = entry.getKey();
    Collection<V> v = entry.getValue();
}


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

最佳答案

它们都是有效的;第二个往往更容易阅读(特别是因为您可以从 List 中获得实际的 ListMultimap,依此类推),但第一个可能更有效(在一定程度上可能会或可能无关紧要)你)。

关于 Guava :迭代 Multimap 的键-> 集合条目的最佳方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6668574/

相关文章:

java - Guava ImmutableMap 中的性能警告

javascript - 如何等到循环内的异步进程完成后再退出循环?

xslt - 循环 XSLT

javascript for循环没有获取id值

C++ multimap<int, vector<string>> 内存分配问题

c++ - std map 和 multimap 迭代器是一样的吗?

java - Guava Cache 的概率提前过期

java - 如何检查 Multimap 的值是否为 null 或为空?

java - Guava 事件总线 : don't catch RuntimeException

java - 如何将 List<Person> 转换为 Map<String, List<Double>> 而不是 Map<String, List<Person>>?