问题标签 [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 投票
8 回答
8243 浏览

java - 如何确保 hashCode() 与 equals() 一致?

当覆盖 java.lang.Object 的 equals() 函数时,javadocs 建议,

每当重写该方法时,通常都需要重写 hashCode 方法,以维护 hashCode 方法的一般约定,即相等的对象必须具有相等的哈希码。

hashCode() 方法必须为每个对象返回一个唯一的整数(这在根据内存位置比较对象时很容易做到,只需返回对象的唯一整数地址)

应该如何覆盖 hashCode() 方法,以便它仅基于该对象的属性为每个对象返回一个唯一的整数?

0 投票
33 回答
1092245 浏览

java - 如何在 Java 中生成 MD5 哈希?

有没有什么方法可以在 Java 中生成字符串的 MD5 哈希?

0 投票
9 回答
58358 浏览

c# - C# 中的 GetHashCode 指南

我在 Essential C# 3.0 和 .NET 3.5 书中读到:

GetHashCode() 在特定对象的生命周期内的返回应该是恒定的(相同的值),即使对象的数据发生变化。在许多情况下,您应该缓存方法返回以强制执行此操作。

这是一个有效的指导方针吗?

我在 .NET 中尝试了几个内置类型,但它们的行为并非如此。

0 投票
10 回答
4256 浏览

java - 当equals()基于多个独立字段时的hashCode()方法

我有一个类,其相等性基于 2 个字段,因此如果其中一个字段相等,则此类型的对象被视为相等。如何为这样的 equals() 编写 hashCode() 函数,以便在 equals 返回 true 时保留 hashCode 的一般合同?

我如何为这个类编写一个 hashCode() 函数?我想避免像这样返回一个常量的微不足道的情况:

0 投票
9 回答
3353 浏览

java - 为非常简单的类实现 `hashCode()`

我有一个非常简单的类,只有一个字段成员(例如字符串)。可以实现hashCode()简单地返回fieldMember.hashCode()吗?或者我应该以某种方式操纵该字段的哈希码?另外,如果我应该操纵它,那是为什么呢?

0 投票
6 回答
1298 浏览

c# - 为什么 GetHashCode 不是 .NET 中的 HashCode 之类的属性

为什么 GetHashCode 不是 .NET 中的 HashCode 之类的属性?

0 投票
5 回答
3520 浏览

floating-point - 有没有办法用 epsilon 获得浮点数的哈希码?

众所周知,比较浮点数==通常是一个错误。在我写的一个 3D 向量类(带有浮点分量 X、Y、Z)中,如果两个向量的距离被认为为零,则它们被认为是相等的。

到目前为止,一切正常。但是,现在我想获得向量的哈希码。我可以看到类似hash = (int)X^(int)Y^(int)Z的东西一定会失败。

我能想到的最好的办法是:

当然,这有点糟糕。有什么方法可以获得合理的哈希码?NaN 和其他特殊值是可能的,但不太可能,如果这很重要的话。

0 投票
6 回答
133193 浏览

java - 当 toString() 和 hashCode() 被覆盖时,如何在 java 中获取对象的“对象引用”?

我想在 Java 中打印对象的“对象引用”以进行调试。即根据情况确保对象相同(或不同)。

问题是有问题的类继承自另一个类,该类已经覆盖了 toString() 和 hashCode() 这通常会给我 id。

示例情况:运行多线程应用程序,我(在开发期间)想检查所有线程是否使用资源对象的相同实例。

0 投票
9 回答
50041 浏览

c# - 包含泛型数组的对象的 GetHashCode 覆盖

我有一个包含以下两个属性的类:

我已经做到IEquatable<T>并覆盖了object.Equals这样的:

当有覆盖时,object.EqualsGetHashCode当然也必须覆盖。但是我应该实现什么代码?如何从通用数组中创建哈希码?以及如何将它与Id整数结合起来?

0 投票
8 回答
492 浏览

checksum - 为什么各种项目的下载都有哈希码或校验和?

从 Internet 下载各种可执行文件或 zip 文件时,我从未使用过校验和。我知道它用于检查一致性并增加一些安全性。但是,当您从 Apache 或 Microsoft 等受人尊敬的项目下载时,是否有必要。我们中有多少人真正使用校验和或哈希码来验证内容?

仅供参考,如果我偏离 StackOverflow 可接受的内容太远,请告诉我。