陷阱 - 迭代地圖鍵可能效率低下
以下示例程式碼比它需要的慢:
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
)。在大地圖上,這可能不是一個微不足道的開銷。
避免這種情況的正確方法是迭代地圖的條目,這在“ 集合”主題中有詳細說明