问题标签 [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.
.net - 如何区分泛型中的MethodBase
我有一个基于
键是从 MethodBase.GetCurrentMethod 呈现的。在明确声明方法之前,一切正常。但有一天,似乎:
当 T 获得完全不同的类型时,在 Dictionary 中输入相同的条目。
所以我的问题是关于为泛型方法缓存值的更好方法。(当然我可以提供提供 GetCache 和相等遇到的泛型类型的包装器,但这种方式看起来并不优雅)。
在这里更新 我真正想要的:
perl - Perl 中的快速字符串校验和函数生成 0..2^32-1 范围内的值
我正在寻找具有以下属性的 Perl 字符串校验和函数:
- 输入:未定义长度的 Unicode 字符串 (
$string
) - 输出:无符号整数 (
$hash
),其中0 <= $hash <= 2^32-1
包含 (0 到 4294967295,匹配 4 字节 MySQL unsigned int 的大小)
伪代码:
理想情况下,校验和函数应该快速运行,并且应该在目标空间 ( 0
.. 2^32-1
) 中生成某种程度均匀的值以避免冲突。在这个应用程序中,随机碰撞完全不是致命的,但显然我想尽可能避免它们。
鉴于这些要求,解决此问题的最佳方法是什么?
java - Double.POSITIVE_INFINITY 的 hashCode
我最近在 java 中计算双精度元组的哈希码时遇到了一个奇怪的情况。假设您有两个元组 (1.0,1.0) 和 (Double.POSITIVE_INFINITY,Double.POSITIVE_INFINITY)。使用Joshua Bloch 的 Effective Java(第 7 项)中所述的习语,这两个元组将不被视为相等(想象这些元组是对象)。但是,使用条款 8 中所述的公式来计算hashCode()
每个元组的计算结果是相同的。
所以我的问题是:这个公式有什么奇怪的地方是我在编写公式时错过的,还是只是哈希码冲突的奇怪情况?
这是说明情况的简短比较方法(我将其编写为 JUnit4 测试,但它应该很容易转换为main
方法)。
java - Java中变量的内存地址
请看下面的图片。当我们在 java 中使用关键字创建对象时new
,我们从操作系统获取内存地址。
当我们编写时,out.println(objName)
我们可以看到一个“特殊”字符串作为输出。我的问题是:
- 这是什么输出?
如果是操作系统给我们的内存地址:
a)如何将此字符串转换为二进制?
b) 我怎样才能得到一个整数变量地址?
java - 哈希码和等于
equals
和hashCode
方法必须一致,这意味着当两个对象根据equals
方法相等时,它们的hashCode
方法应该返回相同的哈希值。
如果我们不重写 hashCode() 方法,Java 会返回一个唯一的哈希码。
为什么取消注释该行会产生编译错误?
如果对象具有不相等的哈希码,为什么即使默认哈希码不同,它们也显示为相等?
ruby - Ruby "foo".hash 的 Perl 等价物是什么?
Ruby 字符串的hash方法根据字符串的长度和内容返回一个数字:
Perl 中的等价物是什么?
scala - 具有特征的案例类的equals/hashCode的Scala语义
我是 Scala 的新手。在 2.7.7 中,以下代码
印刷
而我本来期望的
我错过了什么?提前致谢。
java - java hashtable的hash
java Hashtable 元素的 hashCode 总是唯一的?
如果没有,我怎么能保证一次搜索会给我正确的元素?
.net - 'int GetHashCode' 是不是有点短视?
鉴于 .Net 能够通过 IntPtr 检测位数(尽管通过反射器查看大量它被标记为不安全 - 耻辱)我一直认为 GetHashCode 返回一个 int 可能是短视的。
我知道最终使用一个好的散列算法,Int32 提供的数十亿个排列绝对足够,但即便如此,可能的散列集越窄,散列键查找越慢,因为需要更多的线性搜索。
同样——我是唯一一个觉得这很有趣的人吗:
而 Int32 只是简单地返回this
.
如果 IntPtr 由于性能问题而无法解决,那么实现 IEquatable 等的 IHashCode 可能会更好?
随着我们的平台在内存容量、磁盘大小等方面变得越来越大,32 位散列足够的日子肯定已经屈指可数了吗?
还是仅仅是通过接口抽象出散列或根据平台调整散列大小所涉及的开销超过了任何潜在的性能优势?
java - 在子类中覆盖 equals() 和 hashCode() ... 考虑超级字段
是否有关于如何在考虑超级字段的子类equals()
中覆盖&的特定规则?知道有很多参数:超级字段是私有/公共的,有/没有getter ...hashCode()
例如,Netbeans 生成的 equals() 和 hashCode() 不会考虑超级字段......和
将返回 true :(
如果您想查看 Netbeans 生成的 equals() 和 hashCode() :