zoukankan      html  css  js  c++  java
  • hashcode的作用

    根据官方文档,我们可以抽成以下的几个关键点:

      1.hashCode的存在主要是用于查找的快捷性,如hashtable,hashMap等,hashCode是用来

       在散列存储结构中确定对象的存储地址的

      2.如果两个对象相同,就要适用于equals(java.lang.Object)方法,那么这两个对象的hashCode一定

       相同

      3.如果对象的equals方法被重写,那么hashCode也尽量重写,并且产生hashCode使用的对象,一定要
       和equals方法中使用的一致,否则就会违法上面的第二条

      4.两个对象的hashCode相同,并不表示这两个对象相同,也就不一定适用于equals(java.lang.object)

       方法,只能够说明这两个对象在三列存储结构中,如hashtable,他们"存放于同一个篮子里面"

       补充:如果对于两个对象,如果没有重写hashCode(),则此时的hashCode()就是其存储地址

      注意:

        如果你在一个对象中,重写了equals()方法,但是对于你补充些hashCode()方法,会造成问题

        1.如果你比较两个对象,看这两个对象是否相同,但是这两个对象比较之前,会比较hashCode(),

        如果你没写,则这两个对象不相等

        2.如果你在Map<Object,Value>,你此时重写了Object的equals(),但是你没有hashCode(),

        则此时你想通过key(Object)想得到这个value,但是你在这两个对象是会比较这两个对象(key)

        相等,但此时一定会先比较这个对象的hashCode(),一般来说是不同,但此时判断这两个对象不同,

        hashCode()不同,则对对象一定不同

  • 相关阅读:
    Codeforces Round 546 (Div. 2)
    Codeforces Round 545 (Div. 2)
    Codeforces Round 544(Div. 3)
    牛客小白月赛12
    Codeforces Round 261(Div. 2)
    Codeforces Round 260(Div. 2)
    Codeforces Round 259(Div. 2)
    Codeforces Round 258(Div. 2)
    Codeforces Round 257 (Div. 2)
    《A First Course in Probability》-chaper5-连续型随机变量-随机变量函数的分布
  • 原文地址:https://www.cnblogs.com/wnbahmbb/p/6271504.html
Copyright © 2011-2022 走看看