陷阱 - 迭代地图键可能效率低下

以下示例代码比它需要的慢:

Map<String, String> map = new HashMap<>(); 
for (String key : map.keySet()) {
    String value = map.get(key);
    // Do something with key and value
}

这是因为它需要为地图中的每个键进行地图查找(get() 方法)。这种查找可能效率不高(在 HashMap 中,它需要在密钥上调用 hashCode,然后在内部数据结构中查找正确的存储桶,有时甚至调用 equals)。在大地图上,这可能不是一个微不足道的开销。

避免这种情况的正确方法是迭代地图的条目,这在“ 集合”主题中有详细说明