问题标签 [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.

0 投票
4 回答
13083 浏览

hash - 为什么 java hashCode() 中经常使用异或,而很少使用其他位运算符?

我经常看到像这样的代码

为什么异或?

0 投票
3 回答
1092 浏览

python - python,哈希函数选择

使用 Python 和 Django,我将让我的用户向他们的朋友赠送基于 pdf 的礼物,所述朋友将能够通过从电子邮件链接进入我的网站来索取 pdf。

这是计划

  1. 用户给他的朋友一个礼物,输入朋友的电子邮件

  2. 在后台,将保存一个礼品模型,其中包含一个唯一生成的哈希码。

  3. 朋友收到电子邮件,提供了下载 pdf 的链接,如 ( www.mydomain.com/gift/<hash code here>)

  4. 当点击邮件链接时,系统会检查是否存在具有给定哈希码的礼品模型。

  5. 如果是这样,下载开始,否则为 404。

这是解决这个问题的聪明方法吗?如果是这样,你会推荐什么散列函数?有趣的是 /gift/ 对公众开放,如果幸运地找到了链接,任何人都可以认领它。我打算通过接收者的名字加上礼物模型的 pk 来提供散列函数

0 投票
3 回答
4959 浏览

java - 确定对象是否已更改的最佳方法是什么?

我在我的 Java Web 应用程序(JSF1.2,RichFaces)中创建了一些“保存”bean 功能。它使用 JAXB 将其转换为 XML 字符串,然后将其存储在数据库中。如果用户将其加载回来,我想通知用户(bean)内容是否已更改并且应该再次保存。

我的想法是覆盖hashCode()函数 'with' org.apache.commons.lang.builder.HashCodeBuilder,但是我有很多字段和子元素。有没有其他方法来处理这种功能?

编辑

“比较”是在另一种观点上进行的!

任何帮助,将不胜感激!

0 投票
5 回答
1547 浏览

c - 使用整数值作为哈希表的键是多么愚蠢?

我将需要使用具有不同键的哈希表。一个作为键的字符串,另一个作为整数。

至于整数一,对数字运行哈希函数以生成密钥是多么愚蠢?

我的意思是,我将用作哈希表的键的数字总是不同的,根本不会有重复。我使用 mod 运算符来“截断”哈希表大小以下的值还不够吗?

或者还有更多的东西?

0 投票
2 回答
128 浏览

hashmap - 如何确定存储字典单词的哈希码值?

我正在准备面试,遇到了这个问题:

考虑一下我有 1000,000 个单词,我想创建一个字典。我可以使用的数据结构是 Map 或 B+ 树。但是我应该根据什么标准编写我的 hashcode(),以便检索可以快速。

欢迎大家的意见...

0 投票
10 回答
91753 浏览

java - Java中hashCode()是如何计算的

hashCode()该方法在java中返回什么值?

我读到它是一个对象的内存引用......哈希值为new Integer(1)1;的哈希值为String("a")97。

我很困惑:它是 ASCII 还是什么类型的值?

0 投票
3 回答
1375 浏览

java - 复杂的HashMap序列化后hashCode不同

我正在将一个 xml 文件解析为一个复杂的 HashMap,如下所示:

Ecm对象:

EcmObject类型:

电磁场

EcmFieldDataType

和 EcmFieldControlType

我已经用 usind commons lang 的 EqualsBuilder 和 HashCodeBuilder 覆盖了所有的 hashCode 和 equal 方法。现在,当我以这种方式复制 A HashMap 时:

m.hashCode()不等于m2.hashCode()

这是我的输出:

另一个奇怪的事情是,例如。10 次 m 具有相同的哈希码,突然在第 11 次哈希码不同......

有什么想法吗?

0 投票
3 回答
3779 浏览

java - 使用注解生成equals/hashcode/toString

我相信我在某个地方读到了人们在编译期间(使用 APT)通过确定哪些字段应该是哈希/相等测试的一部分来生成 equals / hashcode / toString 方法。我在网上找不到类似的东西(我可能做梦了吗?)......

可以这样做:

对于一个实体(所以我们想排除一些字段,比如 id)。

或者像一个 scala 案例类,即一个值对象:

不仅文件变得更具可读性和更易于编写,而且还有助于确保所有属性都是 equals / hashcode 的一部分(以防您稍后添加另一个属性,而无需相应地更新方法)。

我听说 APT 在 IDE 中没有得到很好的支持,但我不认为这是一个主要问题。毕竟,测试主要由持续集成服务器运行。

知道这是否已经完成,如果没有,为什么?谢谢

0 投票
4 回答
5902 浏览

java - 为什么 HashMap 会重新散列键对象提供的哈希码?

我正在阅读 Java 1.6 API 提供的 HashMap 类的代码,无法完全理解以下操作的需要(在 put 和 get 方法的主体中找到):

该方法hash()具有以下主体:

这通过对提供的哈希码执行位操作来有效地重新计算哈希。即使 API 声明如下,我也无法理解这样做的必要性:

这很关键,因为 HashMap 使用长度为二的幂的哈希表,否则会遇到低位没有差异的 hashCode 的冲突。

我确实理解键值解析存储在数据结构数组中,并且该数组中项目的索引位置由其哈希确定。我不明白的是这个函数如何为哈希分布增加任何价值。

0 投票
2 回答
1320 浏览

java - 一组三个字段的哈希码

我有三个领域,即

  1. 1号
  2. 2号
  3. 时间

我正在尝试在 java 中编写一个函数,该函数为上述字段返回一个唯一的哈希值( long 需要是 hash 的返回类型)。然后,此哈希将用于存储与 HashSet 中的上述字段相对应的数据库行。我是编写哈希码函数的新手,有人可以回顾一下我所拥有的。