我正在查看java队列,我坚持这一行 “队列实现通常不定义equals和hashCode方法的基于元素的版本,而是从Object继承基于身份的版本。”
1.需要完整的上述内容。
2.什么是基于元素的equals和hashcode版本 - 它指的是什么? 3.基于身份的版本 - 这是什么意思?
4.版本属于类或对象/谁的版本和它将在哪里?
网址:https://docs.oracle.com/javase/tutorial/collections/interfaces/queue.html
答案 0 :(得分:3)
这意味着Queue
接口的标准实现通常不会覆盖equals
类的hashCode
和Object
方法,这意味着Object
的默认实现使用了1}}类(即基于身份的版本,仅使用==
进行equals
)。
基于元素的equals
和hashCode
版本将确定两个Collection
是否相等,并根据hashCode
中包含的元素计算Collection
,这就是为什么它被称为“基于元素”。
例如,ArrayList
(实际上是其超类AbstractList
)会以两个equals
彼此相等的方式覆盖List
相同数量的元素和元素彼此相等(按它们出现的顺序)。 hashCode
是所有元素的hashCode
的函数。
答案 1 :(得分:0)
Queue接口位于java.util包内部,它扩展了Collection接口。在这里,我找到了Java Queue Example的很好的解释。