3得票1回答
当参数为空时,一个良好的空安全哈希码函数返回什么值?

我有一个包含大量属性的对象,需要进行比较,因此必须重写GetHashCode。这很棘手,因为任何属性都可以为空,所以我需要重复几行代码。 int hashcode = 0; if (!String.IsNullOrEmpty(Property1)) hashcode ^= Property1...

51得票3回答
如何在Lombok中使用@EqualsAndHashCode With Include

如何在 Java 中使用 Lombok 库中的 @EqualsAndHashCode 与 Include。 @EqualsAndHashCode.Include( ) 如何使Equals方法比较类的ID? 示例:@EqualsAndHashCode.Include( ) @Table(na...

3得票1回答
仍然关于可变对象的哈希码

我知道,我知道,关于哈希码的问题很多,但我想对为可变对象计算哈希码的几种解决方案发表意见。 从这个假设开始(documentation): 一般来说,对于可变引用类型,只有在以下情况下应该重写 GetHashCode: - 您可以从不可变字段计算哈希码;或者 - 您可以确保可变对象的哈希...

21得票6回答
为什么Java中的hashCode()方法可以返回不同对象相同的值?

我正在阅读的书Head First Java中的一句话: 关键在于,即使哈希码相同,也不能保证对象相等,因为hashCode()方法中使用的“哈希算法”可能会为多个对象返回相同的值。 为什么hashCode()方法会为不同的对象返回相同的值?这不会造成问题吗?

4得票1回答
如何使用哈希字节比较两个图像是否相同?

private void button1_Click(object sender, EventArgs e) { Bitmap im1 = new Bitmap(@"C:\Users\user\Downloads\CaptchaCollection\1.png"); Bitma...

23得票9回答
C# 整型数组的哈希码

我有一个类,内部只是一个整数数组。一旦构造,该数组永远不会改变。我想预先计算出一个好的哈希码,以便该类可以作为Dictionary中的键被非常高效地使用。数组长度少于30个项,通常情况下整数值在-1000到1000之间。

24得票4回答
Java中的"内部地址"是什么?

在Object.hashCode()的Javadoc中,它声明: 尽可能合理地说,由类 Object 定义的hashCode方法确实为不同的对象返回不同的整数。(通常通过将对象内部地址转换为整数来实现此功能,但Java™编程语言不要求使用此实现技术。) 这是一个常见的误解,认为hash...

3得票4回答
实现二叉搜索树的equals和hashcode方法

这个问题是对实现BST的hashCode的跟进。我的问题思考不够充分,所以我得到了一个答案,但我不确定如何使用它。 我需要为BST实现equals:当且仅当两个BST在结构和内容上相等时,equals返回true。因此,我想我还需要实现hashCode函数。我得到了hashCode函数的答案...

7得票5回答
如何使用String.hashCode生成主键

我知道这似乎已经讨论过并且答案是肯定的,String.hashCode可以为不同的字符串生成相同的值,但是可能性很小(Can Java's hashCode produce same value for different strings?)。但是在我的应用程序中确实会发生这种情况。 以下代...

9得票9回答
单元测试等于和哈希码 - 一个复杂度故事

我有一个道德困境。我的应用程序中有一些值对象,它们是不可变的,非常简单。我使用IDE(例如IntelliJ)生成了equals和hashcode,但这样做导致代码覆盖率下降,而且报告现在表明这些值对象非常复杂(使用圈复杂度指标),但实际上它们非常简单。 例如,以下equals方法位于一个具有...