遍历Map<K, Collection<V>>的正确方法
对于value为集合的map,一般直觉上我们可能会选用下面的方式遍历map中所有collection的所有对象:
for(K key:map.keySet()){
for(V value:map.get(key)){
// do sth.
}
}
实际上,这种方式在第二行上会因为对哈希表的查询浪费效率,正确的做法应该这样:
for(List list:map.values()){
for(V o:list){
// do sth.
}
}
</pre>
或者
for(Map.Entry<k,List> entry:map.entrySet()){
for(V o:entry.getValue()){
// do sth.
}
}
</pre>