Mapのiterationについての注意

iterationに対してkeysetを使用して以下のように書くことがあるかもしれません

for (Iterator it = map.keySet().iterator(); it.hasNext();) {
    Object key = it.next();
    Object value = map.get(key);
}

しかし、この場合ではmap.get(key)をループ内で呼び出してしまっていて無駄な処理をすることになります。

そのため、entrySet()を使用して、

for (Iterator it = map.entrySet().iterator(); it.hasNext();) {
    Map.Entry entry = (Map.Entry)it.next();
    Object key = entry.getKey();
    Object value = entry.getValue();
}

のように変更することで無駄ない処理に変更することが出来ます。