ConcurrentModificationException (Java)

Exception in thread "main" java.util.ConcurrentModificationException
Squash the PC dirties the room Violet. The room's state is now dirty
Lily the animal growls
The Animal Lily left the room and goes to Green through the west door.
        at java.util.HashMap$HashIterator.nextEntry(HashMap.java:793)
        at java.util.HashMap$KeyIterator.next(HashMap.java:828)
        at homework5.Room.critReactRoomStateChange(Room.java:76)
        at homework5.PC.play(PC.java:121)
        at homework5.Main.main(Main.java:41)
Java Result: 1

Ese es el error que recibo.

Mi método se parece a

public void critReactRoomStateChange(String command, PC pc) {
    Creature temp = null;
    Iterator iterator = getCreatures().keySet().iterator();
    while (iterator.hasNext()) {
        String names = iterator.next().toString();
        if (!(getCreatures().get(names) instanceof PC)) {
            temp = getCreatures().get(names);
            if (temp != null) {
                temp.reactStateChange(command, pc);
                temp.checkNewRoom();
            }
        }
    }
} 

Entonces, lo que entiendo es que esto significa que estoy cambiando el tamaño del iterador antes de que termine y este es el error que obtienes. Esto es cierto ya que uno de los reactStateChange es que un objeto se elimine del hashMap. ¿Cómo hago esto de manera segura para que cuando elimine algo, se lo informe al iterador con anticipación para que pueda evitar este error? Gracias por adelantado. Si se necesitan más detalles, me complacería atender sus solicitudes.