陷阱 - 迭代地圖鍵可能效率低下

以下示例程式碼比它需要的慢:

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)。在大地圖上,這可能不是一個微不足道的開銷。

避免這種情況的正確方法是迭代地圖的條目,這在“ 集合”主題中有詳細說明