1

如果我有HashSet<Double>一个长度在 1 到 10.000 之间的 Java,那么这个集合的哈希码和它的所有子集是唯一的吗?

4

2 回答 2

4

不,Object.hashCode()方法实现(例如HashSet.hashCode())不保证返回唯一值,只返回一个伪随机值,足以满足散列数据结构的目的。

HashSet<Double>如果您需要基于设置内容的唯一值,您应该自己实现它。

于 2020-05-21T14:35:35.230 回答
1

集合的哈希码定义为集合中元素的哈希码之和,其中元素的哈希码null定义为的总合同。zeros1.equals(s2)s1.hashCode()==s2.hashCode()s1s2Object.hashCode

于 2020-05-21T14:47:58.110 回答