问题标签 [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.
hash - 为什么 java hashCode() 中经常使用异或,而很少使用其他位运算符?
我经常看到像这样的代码
为什么异或?
python - python,哈希函数选择
使用 Python 和 Django,我将让我的用户向他们的朋友赠送基于 pdf 的礼物,所述朋友将能够通过从电子邮件链接进入我的网站来索取 pdf。
这是计划
用户给他的朋友一个礼物,输入朋友的电子邮件
在后台,将保存一个礼品模型,其中包含一个唯一生成的哈希码。
朋友收到电子邮件,提供了下载 pdf 的链接,如 (
www.mydomain.com/gift/<hash code here>
)当点击邮件链接时,系统会检查是否存在具有给定哈希码的礼品模型。
如果是这样,下载开始,否则为 404。
这是解决这个问题的聪明方法吗?如果是这样,你会推荐什么散列函数?有趣的是 /gift/ 对公众开放,如果幸运地找到了链接,任何人都可以认领它。我打算通过接收者的名字加上礼物模型的 pk 来提供散列函数
java - 确定对象是否已更改的最佳方法是什么?
我在我的 Java Web 应用程序(JSF1.2,RichFaces)中创建了一些“保存”bean 功能。它使用 JAXB 将其转换为 XML 字符串,然后将其存储在数据库中。如果用户将其加载回来,我想通知用户(bean)内容是否已更改并且应该再次保存。
我的想法是覆盖hashCode()
函数 'with' org.apache.commons.lang.builder.HashCodeBuilder
,但是我有很多字段和子元素。有没有其他方法来处理这种功能?
编辑
“比较”是在另一种观点上进行的!
任何帮助,将不胜感激!
c - 使用整数值作为哈希表的键是多么愚蠢?
我将需要使用具有不同键的哈希表。一个作为键的字符串,另一个作为整数。
至于整数一,对数字运行哈希函数以生成密钥是多么愚蠢?
我的意思是,我将用作哈希表的键的数字总是不同的,根本不会有重复。我使用 mod 运算符来“截断”哈希表大小以下的值还不够吗?
或者还有更多的东西?
hashmap - 如何确定存储字典单词的哈希码值?
我正在准备面试,遇到了这个问题:
考虑一下我有 1000,000 个单词,我想创建一个字典。我可以使用的数据结构是 Map 或 B+ 树。但是我应该根据什么标准编写我的 hashcode(),以便检索可以快速。
欢迎大家的意见...
java - Java中hashCode()是如何计算的
hashCode()
该方法在java中返回什么值?
我读到它是一个对象的内存引用......哈希值为new Integer(1)
1;的哈希值为String("a")
97。
我很困惑:它是 ASCII 还是什么类型的值?
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 次哈希码不同......
有什么想法吗?
java - 使用注解生成equals/hashcode/toString
我相信我在某个地方读到了人们在编译期间(使用 APT)通过确定哪些字段应该是哈希/相等测试的一部分来生成 equals / hashcode / toString 方法。我在网上找不到类似的东西(我可能做梦了吗?)......
可以这样做:
对于一个实体(所以我们想排除一些字段,比如 id)。
或者像一个 scala 案例类,即一个值对象:
不仅文件变得更具可读性和更易于编写,而且还有助于确保所有属性都是 equals / hashcode 的一部分(以防您稍后添加另一个属性,而无需相应地更新方法)。
我听说 APT 在 IDE 中没有得到很好的支持,但我不认为这是一个主要问题。毕竟,测试主要由持续集成服务器运行。
知道这是否已经完成,如果没有,为什么?谢谢
java - 为什么 HashMap 会重新散列键对象提供的哈希码?
我正在阅读 Java 1.6 API 提供的 HashMap 类的代码,无法完全理解以下操作的需要(在 put 和 get 方法的主体中找到):
该方法hash()
具有以下主体:
这通过对提供的哈希码执行位操作来有效地重新计算哈希。即使 API 声明如下,我也无法理解这样做的必要性:
这很关键,因为 HashMap 使用长度为二的幂的哈希表,否则会遇到低位没有差异的 hashCode 的冲突。
我确实理解键值解析存储在数据结构数组中,并且该数组中项目的索引位置由其哈希确定。我不明白的是这个函数如何为哈希分布增加任何价值。
java - 一组三个字段的哈希码
我有三个领域,即
- 1号
- 2号
- 时间
我正在尝试在 java 中编写一个函数,该函数为上述字段返回一个唯一的哈希值( long 需要是 hash 的返回类型)。然后,此哈希将用于存储与 HashSet 中的上述字段相对应的数据库行。我是编写哈希码函数的新手,有人可以回顾一下我所拥有的。