问题标签 [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 - C++ 中的 HashCodeBuilder
如果我想在 Java 中为给定对象生成哈希,我知道的最简单的方法是使用 Apache Commons HashCodeBuilder
:
C ++中有类似的东西吗?
scala - Scala 的 BigDecimal 是否违反了 equals/hashCode 合同?
根据Ordered
trait
需求,equals
ScalaBigDecimal
类上的方法与顺序一致。但是,哈希码只是从包装中获取的java.math.BigDecimal
,因此与 equals 不一致。
我找不到任何关于这是一个已知问题的参考。我错过了什么吗?
c# - 关于如何正确覆盖 object.GetHashCode() 的一般建议和指南
根据MSDN,哈希函数必须具有以下属性:
如果两个对象比较相等,则每个对象的 GetHashCode 方法必须返回相同的值。但是,如果两个对象比较不相等,则两个对象的 GetHashCode 方法不必返回不同的值。
只要确定对象的 Equals 方法的返回值的对象状态没有修改,对象的 GetHashCode 方法就必须始终返回相同的哈希码。请注意,这仅适用于应用程序的当前执行,并且如果再次运行应用程序,则可以返回不同的哈希码。
为了获得最佳性能,散列函数必须为所有输入生成随机分布。
我一直在以下场景中发现自己:我创建了一个类,实现IEquatable<T>
并覆盖了object.Equals(object)
. MSDN指出:
覆盖 Equals 的类型也必须覆盖 GetHashCode ;否则,Hashtable 可能无法正常工作。
然后它通常对我来说有点停顿。因为,您如何正确覆盖object.GetHashCode()
?永远不知道从哪里开始,而且似乎有很多陷阱。
在 StackOverflow 上,有很多与 GetHashCode 覆盖相关的问题,但其中大多数似乎是针对特定情况和特定问题的。所以,因此我想在这里得到一个很好的编译。包含一般建议和指南的概述。做什么,不做什么,常见的陷阱,从哪里开始等等。
我希望它特别针对 C#,但我认为它对其他 .NET 语言的工作方式也是一样的(?)。
我认为最好的方法可能是为每个主题创建一个答案,首先是一个快速而简短的答案(如果可能的话,接近单行),然后可能是更多的信息,并以相关的问题、讨论、博客文章等结束。 ,如果有的话。然后,我可以创建一个帖子作为接受的答案(将其放在首位),只需一个“目录”。尽量保持简短和简洁。不要只链接到其他问题和博客文章。尝试获取它们的本质,然后链接到源(特别是因为源可能会消失。另外,请尝试编辑和改进答案,而不是创建许多非常相似的答案。
我不是一个很好的技术作家,但我至少会尝试格式化答案,使它们看起来相似,创建目录等。我还将尝试在 SO 上搜索一些相关问题,以回答部分问题这些,也许会提取出我可以管理的那些精髓。但由于我在这个话题上不是很稳定,我会尽量远离:p
java - 哈希码唯一性
是否有可能两个实例Object
具有相同的hashCode()
?
理论上一个对象hashCode
是从它的内存地址派生的,所以所有的都hashCodes
应该是唯一的,但是如果在 GC 期间对象被移动了怎么办?
java - 如何找到哈希码的有效性?
在我们的应用程序中,我们从 java 对象生成哈希码并将其存储在数据库中的某个级别。现在我的问题是,如果有人手动生成一个数字,有没有办法我可以找出它是否是由 JVM 从对象创建的有效哈希码,而不是手动创建的。
java - 使用 hashCode() 测试字符串相等性
是否有任何理由无法使用它的 hashCode 方法测试 Java 字符串的相等性?所以基本上,而不是......
你可以用...
这将很有用,因为一旦一个字符串计算出它的哈希码,那么比较一个字符串将与比较一个 int 一样有效,因为字符串缓存了哈希码,而且很可能无论如何该字符串都在字符串池中,如果你设计它方式。
.net - HttpRequest.GetHashCode() 实现 - 冲突多久发生一次?
我试图找到一种可靠的方法来唯一地识别和跟踪 ASP.NET 网站中的不同 HttpRequest。
有人知道 HttpRequest.GetHashCode() 的实现吗?具体来说,碰撞发生的频率如何?
我了解 HashCodes 不保证是唯一的。我想了解的是统计上我可以期望 HashCode 重复自身的频率。
我想到的系统会优雅地处理 HashCode 冲突,但我想确保它们至少与千分之一左右一样唯一。
scala - 覆盖在 Scala 中实现的 JavaBeans 的 equals 和 hashCode 方法
我正在使用 iBatis 和 Java 缓存工具 ehcache 开发一个项目,但我正在 Scala 中实现模型类。我有一种强烈的感觉,我必须重写 equals 和 hashCode 方法以使缓存能够轻松管理其上的对象。
由于 scala 类中的大多数必需属性都是 vars,因此我需要有关创建依赖于 vars 和有效的对象比较的有效等于定义的建议。
代码示例将不胜感激。
谢谢。
java - 在 HashMap 中使用 String 键的坏主意?
我知道 String 类的hashCode()方法不能保证为不同的 String-s 生成唯一的哈希码。我看到很多将 String 键放入 HashMap-s 的用法(使用默认的 String hashCode() 方法)。如果映射put
替换了之前使用真正不同的字符串键放入映射的 HashMap 条目,则很多这种用法可能会导致严重的应用程序问题。
您遇到 String.hashCode() 为不同的 String-s 返回相同值的情况的几率是多少?当键是字符串时,开发人员如何解决这个问题?