- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
对于 AbstractList,哈希码计算如下:
int hashCode = 1;
Iterator<E> i = list.iterator();
while (i.hasNext()) {
E obj = i.next();
hashCode = 31*hashCode + (obj==null ? 0 : obj.hashCode());
}
而对于 AbstractSet,其计算方式如下:
int h = 0;
Iterator<E> i = iterator();
while (i.hasNext()) {
E obj = i.next();
if (obj != null)
h += obj.hashCode();
}
问题:为什么AbstractList的哈希码计算不能与AbstractSet的哈希码计算相同?这是否与 List
中可能的元素重复与 Set
中的唯一元素保证有关,或者与 ordered
与 相关>它们的无序
属性?
最佳答案
绝对是的。 List
接口(interface)中指定的哈希码计算使得具有相同元素但以不同方式排序的两个列表的 hashCode()
可能会不同。 Set
接口(interface)中指定的哈希码保证两个具有相同元素但顺序不同的 Set
的哈希码相同。
这自然对应于 List
和 Set
的不同相等概念。
关于Java:AbstractSet 与 AbstractList 的 hashCode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14778091/
Set结构图 Set public abstract interface Set extends Collection 不包含重复元素的 collection 重写了eq
是否有记录在案的排除 union 的原因和 intersection来自 abc.Set 的定义方法从而来自 typing.AbstractSet ?结果,我经常不得不使用Union[Set,Froz
好吧,我已经寻找这个问题有一段时间了。我不断收到无法实例化 abstractSet 的错误。它不断要求通用。我添加了通用但仍然没有骰子。 import java.util.AbstractSet; i
下面显示的代码确实输出: [b] [a, b] 但是我希望它在输出中打印两行相同的行。 import java.util.*; public class Test{ static void t
对于 AbstractList,哈希码计算如下: int hashCode = 1; Iterator i = list.iterator(); while (i.hasNext()) {
一边研究抽象类和接口(interface)。我确实想知道为什么 java 集合具有所有抽象类。为什么他们不实现接口(interface)而不是抽象类。我对 AbstractList,AbstractS
我正在尝试用类型注释我的代码,但在涉及集合时我有点困惑。我在 PEP 484 中阅读了一些观点: Note: Dict , List , Set and FrozenSet are mainly us
我是一名优秀的程序员,十分优秀!