hashcode

所有JVM /系统中的Java,Object.hashCode()结果常量?

Object.hashCode()的输出是否必须在同一个对象的所有JVM实现上相同?例如,如果“test”.hashCode()在1.4上返回1,它是否可能在1.6上返回2.或者如果操作系统不同,或者实例之间存在不同的处理器架构,该怎么办?

java – 为自定义对象列表实现removeAll的问题

我的代码中有一个场景,我需要比较两个列表并从第一个列表中删除第二个列表中的对象.类似于“removeAll”对象如何为List工作.由于我的List是在自定义对象上创建的,因此removeAll方法对我不起作用.我尝试过各种方法来完成这项工作:–为包含列表的自定义对象实现了equals()和hashCode–为自定义对象实现了ComparableInterface–为自定义对象实现了比较器接口我甚

java – 一个好的哈希函数,用于访问整数,字符串?

我在面试中遇到了一些情况,我需要使用整数或字符串的哈希函数.在这种情况下,我们应该选择哪些?我在这些情况下出错了,因为我最终选择了那些产生大量碰撞的东西,然后哈希函数往往是数学的,你不能在面试中回忆一下.有没有一般的建议,至少面试官对你的整数或字符串输入的方法感到满意?如果相等的实例具有不等的哈希码,可以弄清楚为什么并解决问题.

java – 如何将第三方类对象用作Hashmap键?

好的,我理解equals和hashcode的工作原理以及它们在hashmap中的使用方式.但是这个问题在我脑海中浮现,如果我有一个没有覆盖哈希码和等号的第三方对象,我甚至不允许修改它.考虑以下课程:现在我想把这个类作为我的Hashmap键,显然它不会没有equals和hashcode.我想知道有没有办法处理这种情况?我无法想到任何我想到的事情.谢谢.解决方法我之前遇到过这种情况,并通过为WannaBeKey创建一个包装器来解决这个问题:显然这会改变你的Set来自Set设置,但你应该能够解释它.

java – 为什么Netbeans以它的方式生成hashCode()?

特别是由于thisansweronthelinkedSOquestion,我了解了现在更全面地设计一个hashCode方法中使用素数的逻辑.然而,目前为止,没有人真正解决的问题的另一方面是Netbeans如何选择它为生成的方法所做的素数.哈希字段和其他乘数似乎根据类的各种因素而不同.例如,如果我添加第二个String到该类,则hashCode()变为那么,为什么Netbeans选择这些特定的素数,而不是其他的?

在Java中允许和接受hashCode和equals方法中的异常?

一些类框架填充的类.所以你不能保证所有的字段设置.看看例子:标记为@Entity的类通常有Integerid字段.hashCode可以写成:但defencive代码可能看起来像:在hashCode和equals函数中尝试使用{…}catch,需要对空或环绕码进行写入检查吗?我没有任何辩护编码的理由是这样的情况,因为它隐藏将不一致的对象放在集合中并导致更迟的错误.我在这个位置错了吗?更新我写了这样的代码:并运行它:我认为我可以早期找到错误,而不是返回零,如果对象处于错误的状态…

java – 提供相同hashCode的两个不同的Class实例

我在JBoss服务器上遇到一个奇怪的问题,其中两个类生成相同的hashCode().生产:我通常不会在意,但是我们正在使用一个框架,它使用由类和属性名称的哈希码构成的密钥来缓存设置器.这是缓存的一个坏设计,但目前无法控制这个问题让我有些奇怪>问题出现在使用几天后,我很确定在这段时间内,类/属性都被缓存.这使我相信类实例哈希码实际上正在改变…

在Java中维护Object方法契约的自动化单元测试?

在开发Java应用程序时,我经常会重写Object方法(通常是equals和hashCode).我想要一些方法来系统地检查我是否遵守我每个课程的Object方法的合同.例如,我想要测试证明对于相等的对象,哈希码也是相等的.我使用JUnit测试框架,所以最好我想要一些JUnit解决方案,我可以自动生成这些测试,或者一些测试用例,可以访问我的所有课程,并确保合同得到维护.我使用JDK6和JUnit4.

java – HashSet如何处理hashCode()?

它是否仅使用我们尝试添加的值作为键,然后使用其hashCode?如果我对HashSet实现说错了,请纠正我.我的另一个问题是:一般来说,哪些类可以使用java对象的hashCode()方法?