Pou*_*ria 4 java collections equals hashcode
编辑:现在只考虑ArrayDeque.(我原本以为LinkedList也不会覆盖这两种方法.)
集合类型ArrayDeque只使用它从Object继承的hashCode和equals方法实现.
为什么不用正确的实现覆盖这些方法(即基于包含的元素的哈希和相等测试)?
LinkedList扩展AbstractSequentialList哪个扩展AbstractList,它覆盖equals和hashCode- 所以实现不是从继承Object.
ArrayDeque另一方面,就我所见,实际上并没有继承任何其他实现.它的直接超类(AbstractCollection)不会覆盖它们.这感觉就像一个例外,而不是规则 - 我相信Java中的大多数集合实现都"做正确的事情".
我不知道ArrayDeque选择不实现相等的理由,但如果你想比较两个deques,你可以很容易地将它们转换成列表或数组,并以这种方式进行.