...
At other times, a deep copy may be desirable. This condition applies to all objects whose state comprises mutable data. For instance, if the hash table contained references to mutable data such as a series of Date
objects, every one of those objects will have to be copied by using a copy constructor or method. For further details, refer to FIO31-J. Defensively copy mutable inputs and mutable internal components and OBJ36-J. Provide mutable classes with a clone method when to allow passing instances to untrusted code safely. Note that the keys of a hash table need not be deep copied; shallow copying of the references suffices since a hash table's contract dictates that it cannot hold duplicate keys.
...
OBJ36-J. Provide mutable classes with a clone method when to allow passing instances to untrusted code safely 07. Object Orientation (OBJ) OBJ38-J. Immutable classes must prohibit extension