hashCode und gleich für Collections.unmodifiableCollection ()

DasCollections class verfügt über eine Reihe von statischen Hilfsmethoden, mit denen schreibgeschützte Ansichten verschiedener Auflistungstypen bereitgestellt werden können, zunmodifiableSet(), unmodifiableList()usw. Für diese Ansichtsobjekte wird diehashCode() undequals() Methoden leiten Aufrufe an die zugrunde liegende Sammlung weiter ... Mit einer Ausnahme:unmodifiableCollection().

Das JavaDocausdrücklich erklärt:

Die zurückgegebene Sammlung enthältnicht Übergeben Sie den Hashcode und Equals-Operationen an die Backing-Auflistung, aber verlassen Sie sich aufObject'sequals undhashCode Methoden. Dies ist erforderlich, um die Verträge dieser Vorgänge für den Fall beizubehalten, dass die Sicherungssammlung eine Menge oder eine Liste ist.

Meine Frage: wtf redet das ?? Wenn die Hintergrundsammlung eine Menge oder eine Liste ist, würde ich ein Verhalten erwarten, das mit übereinstimmtunmodifiableSet() undunmodifiableList(). Wie würde das gegen den HashCode / Equals-Vertrag verstoßen?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage