このクラスには、Collections、 などのさまざまなコレクション タイプの読み取り専用ビューを提供するための静的ヘルパー メソッドが多数あります。これらのビュー オブジェクトでは、およびメソッドが呼び出しを基になるコレクションに転送します...例外が 1 つあります。unmodifiableSet()unmodifiableList()hashCode()equals()unmodifiableCollection()
JavaDocには明示的に次のように記載されています。
返されたコレクションは、 hashCode および equals 操作をバッキング コレクションに渡しません
Objectが、equalsおよびメソッドに依存していhashCodeます。これは、バッキング コレクションがセットまたはリストである場合に、これらの操作のコントラクトを保持するために必要です。
私の質問: これは何について話しているのですか?? unmodifiableSet()バッキング コレクションがセットまたはリストの場合、 and と一貫した動作が期待できますunmodifiableList()。それは hashCode/equals 契約にどのように違反しますか?