Mutable Key Problem in HashMap HashMap depends on hashCode() remaining stable If the key changes after insertion: hashCode changes bucket location changes HashMap cannot find the object anymore First Understand One Critical Rule HashMap Stores Entry Based On: hashCode() + equals() Simple Mutable Key Example Employee Class class Employee { String name ; Employee ( String name ) { this . name = name ; } @Override public int hashCode () { return name . hashCode (); } @Override public boolean equals ( Object obj ) { Employee e = ( Employee ) obj ; return this . name . equals ( e . name ); } } Enter fullscreen mode Exit fullscreen mode Step 1 — Create Object Employee emp = new Employee ( "John" ); Enter fullscreen mode Exit fullscreen mode Current value: name = "John" Step 2 — Put into HashMap Map < Employee , String > map = new HashMap <>(); map . put ( emp , "Developer" ); Enter fullscreen mode Exit fullscreen mode What Happens Internally? A.…