问题标签 [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.
java - Apache Commons HashCodeBuilder:数字类型的 null 与零
最近,我在使用 Apache Commons Lang 3 的 Java 代码库中遇到了以下哈希码“相等”场景,令我惊讶的是,我找不到太多关于如何处理这似乎是常见问题的信息:
前面的代码产生以下输出,这表明两个对象具有相同的哈希码,尽管它们不相等:
我的对象定义:
虽然我可以理解一个 null Numeric 和 0 Numeric 在纯数学意义上具有相同的散列,但在任何实际设置中,这都会导致不相等的对象具有相同的散列码,这可能会导致相当严重的冲突问题。
澄清/复杂化:虽然我希望能够只调用equals()
或hashcode()
对象,但不幸的是,我正在使用的代码库正在比较两个Object
s,这意味着我不知道是否equals()
或hashcode()
实际上是为任何给定输入定义的,而且我在缺少这些方法的情况下,我无法编辑类定义以添加这些方法。这可能是该代码的原作者选择使用reflectionHashCode()
. 考虑到这一点,是否有针对此问题的编程/基于代码的解决方案或解决方法,例如不需要equals()
或hashcode()
在被比较的对象上定义的替代库?
java - Java HashSet 的哈希码唯一性及其子集
如果我有HashSet<Double>
一个长度在 1 到 10.000 之间的 Java,那么这个集合的哈希码和它的所有子集是唯一的吗?
java - 地图条目的哈希码值
根据 map.entry 的 javadocs 哈希码定义为:
请确认,如果按位 XOR 运算符用于计算映射条目的哈希码值?
java - 两个列表在 equals() 函数下相等但具有不同的哈希码?
我有两个在 equals() 方法下相等的 ArrayList,但它们具有不同的哈希码。这里发生了什么?
根据 Java List API:“list1.equals(list2) 意味着 list1.hashCode()==list2.hashCode() 用于任何两个列表 list1 和 list2,这是 Object.hashCode() 的一般合同所要求的。 "
这是代码:
输出:真-2130368428 1856372392
aem - AEM 中跨作者的页面内容的 UUID 及其关联的发布服务器不同
具有 UUID(jcr:uuid) 的作者页面被激活,其内容被复制到 3 个关联的发布服务器上。所有 3 个发布服务器中可用的内容具有不同的 UUID。那么,考虑到 AEM 上所有 4 个实例的相同内容(1 个作者 + 3 个发布),如何与独特的东西相关联?
我正在实施一个解决方案,我需要关联一个唯一 ID,该 ID 可以映射到所有实例中的单个内容。
到目前为止我尝试过的方法:
使用内容路径 - 通过删除路径中的“/”和“-”来生成唯一 ID。 面临的问题- 对于某些路径,这可能超过 128 个字符,这是服务接受唯一 ID 的限制。
如果我以编程方式生成一个唯一的 ID,它将起作用,但我如何尝试使用它来跟踪后面的内容?因为我无法将这个以编程方式创建的 id 存储在 jcr:content 上并激活页面。 问题- 如果我复制页面,它也会更改激活日期 - 这也是内容的重要元数据。
对于用例来说,最可行的解决方案是什么?请提供建议和可能的解决方案。