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