169得票2回答
为什么在重写ReSharper GetHashCode方法时要使用“397”?

和许多人一样,我使用ReSharper来加速开发过程。当你用它来覆盖类的相等成员时,它为GetHashCode()生成的代码看起来像这样: public override int GetHashCode() { unchecked { ...

25得票6回答
调用GetHashCode()方法时获得重复值的概率

我想知道调用 GetHashCode() 方法时,在 string 实例上获取重复值的概率。例如,根据这篇博客文章, 在 x86 机器上,blair 和 brainlessness 具有相同的哈希码(1758039503)。

13得票5回答
不同文件大小的哈希碰撞和相同文件大小的概率一样吗?

我正在对大量文件进行哈希处理,为了避免哈希冲突,我还会存储文件的原始大小——这样,即使出现哈希冲突,文件大小也极不可能相同。这种做法可行吗(哈希冲突的大小是等可能的),还是需要其他信息(如果冲突时相同长度更有可能)? 更一般地说,无论原始文件大小如何,每个文件生成特定哈希的概率是否都相同?

12得票5回答
哈希算法是否存在可以保证唯一性的情况?

如果我使用比数据更大的字节大小的哈希算法(例如sha-256)对大小受限的相似数据(例如社会安全号码)进行哈希,那么哈希是否保证与原始数据具有相同的唯一性水平?

10得票6回答
Java重写equals()和hashcode()方法,使得两个可互换的整数能够比较相等。

我正在覆盖简单容器对象的equals和hashcode方法,用于两个整数。每个整数反映另一个对象的索引(该对象是什么并不重要)。该类的目的是表示两个对象之间的连接。 连接的方向无关紧要,因此equals方法应该在两个整数在对象中的顺序不同的情况下都返回true。例如:connectionA =...

9得票8回答
Java中一个Point类的hashCode方法

我有一个简单的自定义点类,如下所示,我想知道我的hashCode实现是否可以改进,或者这已经是最好的了。 public class Point { private final int x, y; public Point(int x, int y) { ...

8得票5回答
如何从三个长整型数生成哈希码

我有一个哈希图,键为坐标。 坐标具有3个长整数,分别表示x、y和z坐标。(Coordinate是自定义类,坐标需要是long类型。) 现在我想要通过这样的方式访问例如[5, 10, 4]字段:hashMap.get(new Coordinate(5, 10, 4))。 我已经实现了equ...

7得票1回答
CRC-32哈希的唯一性足以唯一标识包含文件名的字符串吗?

我有一些文件名的列表,它们被拼接成字符串,并且我想通过唯一的校验和来识别每个字符串。 这些字符串的大小最小为100字节,最大为4000字节,平均为1000字节。总字符串数可能是任意的,但更有可能在约10000的范围内。 CRC-32适用于此目的吗? 例如,我需要以下每个字符串具有不同的定...

7得票4回答
Tinyurl风格的唯一代码:预防冲突的潜在算法

我有一个系统需要一个唯一的六位代码来代表一个对象,我正在考虑一个好的算法来生成它们。以下是先决条件: • 我使用基于20进制的系统(没有大写字母、数字、元音字母或l以防混淆和不良字词) o 基于20进制可以产生6400万种组合 • 我将一次性插入可能的5-10千个条目,因此理论上...