问题标签 [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.
java - 如何确保 hashCode() 与 equals() 一致?
当覆盖 java.lang.Object 的 equals() 函数时,javadocs 建议,
每当重写该方法时,通常都需要重写 hashCode 方法,以维护 hashCode 方法的一般约定,即相等的对象必须具有相等的哈希码。
hashCode() 方法必须为每个对象返回一个唯一的整数(这在根据内存位置比较对象时很容易做到,只需返回对象的唯一整数地址)
应该如何覆盖 hashCode() 方法,以便它仅基于该对象的属性为每个对象返回一个唯一的整数?
java - 如何在 Java 中生成 MD5 哈希?
有没有什么方法可以在 Java 中生成字符串的 MD5 哈希?
c# - C# 中的 GetHashCode 指南
我在 Essential C# 3.0 和 .NET 3.5 书中读到:
GetHashCode() 在特定对象的生命周期内的返回应该是恒定的(相同的值),即使对象的数据发生变化。在许多情况下,您应该缓存方法返回以强制执行此操作。
这是一个有效的指导方针吗?
我在 .NET 中尝试了几个内置类型,但它们的行为并非如此。
java - 当equals()基于多个独立字段时的hashCode()方法
我有一个类,其相等性基于 2 个字段,因此如果其中一个字段相等,则此类型的对象被视为相等。如何为这样的 equals() 编写 hashCode() 函数,以便在 equals 返回 true 时保留 hashCode 的一般合同?
我如何为这个类编写一个 hashCode() 函数?我想避免像这样返回一个常量的微不足道的情况:
java - 为非常简单的类实现 `hashCode()`
我有一个非常简单的类,只有一个字段成员(例如字符串)。可以实现hashCode()
简单地返回fieldMember.hashCode()
吗?或者我应该以某种方式操纵该字段的哈希码?另外,如果我应该操纵它,那是为什么呢?
c# - 为什么 GetHashCode 不是 .NET 中的 HashCode 之类的属性
为什么 GetHashCode 不是 .NET 中的 HashCode 之类的属性?
floating-point - 有没有办法用 epsilon 获得浮点数的哈希码?
众所周知,比较浮点数==
通常是一个错误。在我写的一个 3D 向量类(带有浮点分量 X、Y、Z)中,如果两个向量的距离被认为为零,则它们被认为是相等的。
到目前为止,一切正常。但是,现在我想获得向量的哈希码。我可以看到类似hash = (int)X^(int)Y^(int)Z
的东西一定会失败。
我能想到的最好的办法是:
当然,这有点糟糕。有什么方法可以获得合理的哈希码?NaN 和其他特殊值是可能的,但不太可能,如果这很重要的话。
java - 当 toString() 和 hashCode() 被覆盖时,如何在 java 中获取对象的“对象引用”?
我想在 Java 中打印对象的“对象引用”以进行调试。即根据情况确保对象相同(或不同)。
问题是有问题的类继承自另一个类,该类已经覆盖了 toString() 和 hashCode() 这通常会给我 id。
示例情况:运行多线程应用程序,我(在开发期间)想检查所有线程是否使用资源对象的相同实例。
c# - 包含泛型数组的对象的 GetHashCode 覆盖
我有一个包含以下两个属性的类:
我已经做到IEquatable<T>
并覆盖了object.Equals
这样的:
当有覆盖时,object.Equals
我GetHashCode
当然也必须覆盖。但是我应该实现什么代码?如何从通用数组中创建哈希码?以及如何将它与Id
整数结合起来?
checksum - 为什么各种项目的下载都有哈希码或校验和?
从 Internet 下载各种可执行文件或 zip 文件时,我从未使用过校验和。我知道它用于检查一致性并增加一些安全性。但是,当您从 Apache 或 Microsoft 等受人尊敬的项目下载时,是否有必要。我们中有多少人真正使用校验和或哈希码来验证内容?
仅供参考,如果我偏离 StackOverflow 可接受的内容太远,请告诉我。