陷阱 - 迭代地图键可能效率低下
以下示例代码比它需要的慢:
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
)。在大地图上,这可能不是一个微不足道的开销。
避免这种情况的正确方法是迭代地图的条目,这在“ 集合”主题中有详细说明