java吧 关注:1,232,906贴子:12,698,425
  • 19回复贴,共1

求助 两个对象equals为true,那么这两个对象的haseCode相等吗

只看楼主收藏回复

RT 求助 两个对象equals为true,那么这两个对象的haseCode相等吗


IP属地:陕西1楼2015-05-19 14:20回复
    当然 使用jdk里面已有对象 而且不重写 equals方法


    IP属地:陕西2楼2015-05-19 14:21
    收起回复
      自己试试啊


      IP属地:重庆4楼2015-05-19 14:24
      收起回复
        不一定


        来自Android客户端5楼2015-05-19 14:27
        收起回复
          取出来比不就知道了,


          IP属地:湖北来自iPhone客户端6楼2015-05-19 14:45
          回复
            @我现在年轻
            下面是官方文档给的hashcode的定义
            hashcode方法返回该对象的哈希码值。支持该方法是为哈希表提供一些优点,例如,java.util.Hashtable 提供的哈希表。
            hashCode 的常规协定是:
            在 Java 应用程序执行期间,在对同一对象多次调用 hashCode 方法时,必须一致地返回相同的整数,前提是将对象进行 equals 比较时所用的信息没有被修改。从某一应用程序的一次执行到同一应用程序的另一次执行,该整数无需保持一致。
            如果根据 equals(Object) 方法,两个对象是相等的,那么对这两个对象中的每个对象调用 hashCode 方法都必须生成相同的整数结果。
            如果根据 equals(java.lang.Object) 方法,两个对象不相等,那么对这两个对象中的任一对象上调用 hashCode 方法不 要求一定生成不同的整数结果。但是,程序员应该意识到,为不相等的对象生成不同整数结果可以提高哈希表的性能。


            IP属地:陕西7楼2015-05-19 14:45
            收起回复
              有一种情况例外,我试过两个包装类比较,不触发常量池时两个对象散列码相等,但对象不等


              IP属地:湖北来自iPhone客户端8楼2015-05-19 14:46
              收起回复
                如果根据 equals(Object) 方法,两个对象是相等的,那么对这两个对象中的每个对象调用 hashCode 方法都必须生成相同的整数结果。
                这个好像是官方给的一个规定 equals 和 hashcode 都可以被重写但是官方似乎规定了,equals为 ture 是 hashCode也是相等的才行,当然还要看具体的实现


                IP属地:陕西9楼2015-05-19 14:48
                回复
                  hashCode 打错了 不要在意


                  IP属地:陕西10楼2015-05-19 14:49
                  回复
                    www.ttcoolx.com一起学习一起交流


                    来自Android客户端11楼2015-05-19 14:54
                    回复