entrySet メソッドは、一つの Entry オブジェクトを再利用し、反復中に返される基底 Map のビューを返すことが許可されています。 Java 1.6 の時点で、IdentityHashMap と EnumMap の両方がそうしました。 そのような Map を通して繰り返すとき、エントリ値は次の繰り返しへ進むまでが有効です。 たとえば、addAll メソッドにそのような entrySet を渡そうとすると、物事はひどく間違っていくでしょう。