问题标签 [hashcode]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
11 回答
595062 浏览

java - 在 Java 中覆盖 equals 和 hashCode 时应该考虑哪些问题?

equals覆盖和时必须考虑哪些问题/陷阱hashCode

0 投票
20 回答
259600 浏览

java - 集合的 hashCode 方法的最佳实现

我们如何决定hashCode()集合方法的最佳实现(假设 equals 方法已被正确覆盖)?

0 投票
7 回答
1797 浏览

java - 如何从对象的地址计算 hashCode()?

在 Java 中,我有一个VertexJava3D 类的子类Point3f。现在根据其坐标值进行Point3f计算,但对于我的类,我想更严格:两个顶点只有在它们是同一个对象时才相等。到现在为止还挺好:equals()Vertex

我知道这违反了 的合同equals(),但是因为我只会将顶点与其他顶点进行比较,所以这不是问题。

现在,为了能够将顶点放入 aHashMap中,该hashCode()方法必须返回与 一致的结果equals()。它目前是这样做的,但它的返回值可能基于 的字段Point3f,因此会为Vertex具有相同坐标的不同对象提供哈希冲突。

因此,我想基于对象的地址,而不是从的字段hashCode()中计算它。Vertex我知道这个Object类是这样做的,但我不能调用它的hashCode()方法,因为Point3f它会覆盖它。

所以,实际上我的问题是双重的:

  • 我什至要这么浅equals()
  • 如果是,那么,我如何获取对象的地址来计算哈希码?

编辑:我只是想到了一些东西......我可以int在对象创建时生成一个随机值,并将其用于哈希码。这是一个好主意吗?为什么不)?

0 投票
5 回答
640 浏览

java - String.hashCode() 是否可以跨 VM、JDK 和操作系统移植?

最近出现了一个有趣的问题。我们遇到了一些hashCode()用作 MD5 加密的盐源的代码,但这提出了一个问题:hashCode()在不同的 VM、不同的 JDK 版本和操作系统上是否会为相同的对象返回相同的值?即使不能保证,到现在为止它有没有改变?

编辑:我的意思是String.hashCode()而不是更一般Object.hashCode()的,当然可以被覆盖。

0 投票
20 回答
237661 浏览

javascript - JavaScript中是否有任何类型的哈希码函数?

基本上,我正在尝试创建一个独特对象的对象,一个集合。我有一个绝妙的想法,就是使用带有对象作为属性名称的 JavaScript 对象。如,

这在一定程度上有效。它适用于字符串和数字,但对于其他对象,它们似乎都“散列”到相同的值并访问相同的属性。有什么方法可以为对象生成唯一的哈希值吗?字符串和数字是如何做到的,我可以覆盖相同的行为吗?

0 投票
2 回答
510 浏览

java - 没有 HashCode 的错误,等于 Eclipse

我正在寻找一个非常具体的 eclipse 插件,它会告诉我我的项目中的一个类是否没有实现 hashCode 或/和 equals 方法。

有人知道这样的插件吗?

谢谢

0 投票
78 回答
701988 浏览

javascript - 如何确定两个 JavaScript 对象的相等性?

严格相等运算符会告诉您两个对象类型是否相等。但是,有没有办法判断两个对象是否相等,就像Java 中的哈希码值一样?

堆栈溢出问题JavaScript 中是否有任何类型的 hashCode 函数?与this question类似,但需要更学术的答案。上面的场景说明了为什么有必要拥有一个,我想知道是否有任何等效的解决方案

0 投票
22 回答
258494 浏览

.net - 覆盖 GetHashCode 的最佳算法是什么?

在 .NET 中,该GetHashCode方法在整个 .NET 基类库中的很多地方都使用。正确实施它对于在集合中快速查找项目或确定相等性时尤为重要。

是否有关于如何GetHashCode为我的自定义类实现的标准算法或最佳实践,这样我就不会降低性能?

0 投票
2 回答
2114 浏览

.net - 散列一组 GUID 的最快方法

我有一个 n 个 GUID 的列表,我需要将它们散列成一个值。该值可以是 Guid 对象的大小或 Int32 的大小,这并不重要,但它确实需要在统计上是唯一的(比如可能类似于 MD5)。

因此,一种方法可能是对它们进行排序,连接字节并获取所有字节的 MD5 哈希......但这不是很快。

另一个想法:我注意到在 .NET 中将组合对象的 GetHashCode 方法实现为组合对象的哈希码的 XOR 是相当标准的做法。因此,对我的 GUID 列表进行异或运算在数学上是否合理?

欢迎任何想法!

0 投票
15 回答
423817 浏览

c# - 为什么在重写 Equals 方法时重写 GetHashCode 很重要?

给定以下课程

我已经覆盖了该Equals方法,因为Foo它代表了Foos 表的一行。哪个是覆盖的首选方法GetHashCode

为什么覆盖很重要GetHashCode