Collections
クラスは、これらのビューオブジェクトの場合などのようunmodifiableSet()
などの様々なコレクション型、unmodifiableList()
の読み取り専用ビューを提供するために静的ヘルパーメソッドの数、hashCode()
を有しequals()
メソッドは、基本的なコレクションに呼び出しを転送します... 1つの奇妙な例外:unmodifiableCollection()
。ハッシュコードと(Collections.unmodifiableCollectionために等しい)
のJavaDoc explicitly states:
返されるコレクションははないは、ハッシュコードを渡し、バッキングコレクションに至るまでの操作に等しいが、
Object
のequals
とhashCode
方法に依存していません。これは、バッキングコレクションがセットまたはリストである場合に、これらの操作の契約を保持するために必要です。
私の質問:wtfはこれについて話していますか?バッキングコレクションがセットまたはリストの場合、動作はunmodifiableSet()
とunmodifiableList()
と一貫していると思います。それはhashCode/equals契約にどのように違反しますか?コレクションのJavaDocから