hashCode and equals for Collections.unmodifiableCollection()
该类具有许多静态帮助器方法,用于提供各种集合类型的只读视图,例如 、 等。对于这些视图对象,和 方法将调用转发到基础集合...除了一个奇怪的例外:.Collections
unmodifiableSet()
unmodifiableList()
hashCode()
equals()
unmodifiableCollection()
JavaDoc 明确指出:
返回的集合不传递哈希码,而是将相等的操作传递到支持集合,而是依赖于 和 方法。这对于在后备集合是集合或列表的情况下保留这些操作的协定是必要的。
Object
equals
hashCode
我的问题:wtf这是在谈论吗??如果支持集合是一个集合或一个列表,我希望行为与 和 一致。这将如何违反哈希码/平等合约?unmodifiableSet()
unmodifiableList()