问题标签 [hash-code-uniqueness]

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 投票
2 回答
274 浏览

java - 生成更大的 HashCode JAVA

众所周知,Java 会生成大约 40 亿个唯一哈希码。

我正在使用一些字符串的哈希码(例如 Fname + Lname + DOB + DATE),它成为我的数据库的主键

在 @PrePersist 中,我使用 Hashcode 设置它,这有助于我为新用户生成 Hashcode。(必须是唯一的)。

现在我的代码用完了。对我来说可能的替代方法是使用 SHA-2 , MD5 等。

我怎样才能增加哈希码的大小并避免大的冲突。

0 投票
1 回答
476 浏览

c# - 同一双精度的 GetHashCode() 可以产生不同的整数吗?

假设我们double在 C# 中有一个值。

是否有可能在不同的计算机/Windows/体系结构上GetHashCode()为此返回不同的整数值?double

0 投票
1 回答
149 浏览

algorithm - 哈希图中的简单哈希码误解?

我正在实现我自己的具有通用值类型的专用哈希图,但键总是长类型。在这里和那里,我看到人们建议我应该将键乘以素数,然后按桶数取模:

我不明白为什么?在我看来,它的分布与 simple 完全相同:

例如,如果 numOfBuckets 为 8,则使用第二个“算法”我们会得到像 {0, 1, 2, 3, 4, 5, 6, 7} 这样的桶重复 key = 0 到无穷大。在相同键的第一个算法中,我们得到桶 {0, 3, 6, 1, 4, 7, 2, 5}(或类似的)也重复。基本上我们有同样的问题,就像使用身份哈希时一样。

基本上,在这两种情况下,我们都会遇到键冲突:

因为当我们对 numOfBuckets 取模时,我们总是得到 x。那么,第一个算法是怎么回事,有人可以启发我吗?

0 投票
2 回答
2046 浏览

java - Java如何使哈希唯一

我正在尝试创建一个抽象类 Coin,具有实例变量名称(字符串)、符号(java.awt.Image 类型)和哈希(字符串)。问题是我需要使属性哈希不与默认 hashcode() 方法返回的相同,因此具有唯一的 Coin 哈希。

0 投票
1 回答
312 浏览

java - Java中的对象身份和平等

请看下面的2个例子:

结果:

如果我理解正确,我有 2 个不同的对象,因为单词new创建对象。但是我们看到hashCode是一样的,这意味着我错了。如果 hashCode 相同,我明白为什么a.equals(b)True

但是此代码的输出:

是不同的:

现在我们有两个不同的对象,因为hashCode是不同的,这就是为什么两个条件都是False(应该是这样)。

感觉我需要填补知识空白,并会感谢任何指导。

提前致谢!

0 投票
1 回答
1177 浏览

android - 为 Android Jobscheduler 服务生成 JobId

我的应用中有多个 JobServices。根据 Android 文档,每个 JobService 的 JobId 每个 uid 必须是唯一的。为了避免冲突,我使用唯一的字符串哈希码作为我的 JobId。这也可能导致负 JobId。这是生成 JobIds 的正确方法吗?

0 投票
2 回答
54 浏览

kotlin - 如何验证 List 的实例不是另一个 List 实例?

我有一个清单

并复制了一份

在代码的下游,它想验证它是复制的还是原始的

两者的.hashCode()回报相同

如果只是想用Log打印出来,怎么办?

Log.d("+++", "theDataList: ${theDataList.hashCode()}, copy: ${copy.hashCode()"}) 打印出相同的数字。

Log.d("+++", "copy: ${copy}")打印出列表内容

0 投票
3 回答
273 浏览

java - 除了 Collections API,在 Java 中覆盖 hashCode 有什么用?

面试官问这个问题,大多数与哈希码相关的答案都用于分桶,它检查等于搜索对象。

是否有任何其他一般用例或场景,其中哈希码是有益的并且可以在常规程序中使用?

最近我使用了JPA,它抛出异常"Composite-id class does not override hashCode()",但它再次被hibernate的实现类使用。Sly,除了集合之外,我们还可以在哪些其他地方或场景中使用哈希码,尤其是您自己使用过的场景。

0 投票
1 回答
97 浏览

java - 是否可以使用 hashCode 作为内容唯一 ID?

我需要比较两个大字符串。与其使用这样的equals方法,有没有像hashCode这样的方法或为String生成唯一ID的方法?那是因为我的字符串非常大。另外,我需要不同的内容唯一 ID。出于我的目的,是否可以在 String 中使用hashCode 。

0 投票
1 回答
84 浏览

java - 有没有更好的方法来散列由 128 个合法 ASCII 字符中的任何一个组成的字符串的排列?

假设任何两个相互排列的字符串都被认为是相同的(例如,(ABACD,BDCAA)和(ABACD,DBACA)应该散列到HashMap的同一个桶中)。字符串仅包含 128 个合法 ASCII 字符中的任何一个。是否有更好的散列函数来最小化冲突,同时保持 HashMap 小?

另外,有没有办法进一步优化代码?主要目标是尽可能减少运行时间。

该方法接收一个包含一组文本行的文件,每行代表一个条目。文件中的第一行表示条目的总数。它将计算包含相同多重集的条目对的总数。

输入文件包含的示例: 7 BCDEFGH ABACD BDCEF BDCAA DBACA DABACA DABAC

它应该输出:6

这六对是: (ABACD, BDCAA) (ABACD, DBACA) (ABACD, DABAC) (BDCAA, DBACA) (BDCAA, DABAC) (DBACA, DABAC)

散列发生的部分: