zoukankan      html  css  js  c++  java
  • hashcode与equals

    hashcode():object中的方法,实现:根据实例地址来求解的

    equals():object中的方法,在object中与==是一致的,比较地址,在其他的类中重写equals()后是根据对象的内容来比较的,例如:String Integer

    两者的关系:

    实际上两者没有直接的任何关系,但两者的实现要满足这样的逻辑:hash值不相等的两个实例一定不相等,hash值相等的两个实例不一定相等

    在以散列表为基础的结构中会使用到这两个函数,例如:hashmap  hashset,而其他情况是用不到hashcode()方法的

    在hashmap中put()方法中存在这样的逻辑:若hash值不相等则将将值放入hash表中,若hash值相等则再进行equals()的比较

    重写equals是也要重写hashcode的原因:

    上面已经说到以散列表为基本的结构中存在的逻辑,这样处理有什么好处:

    1、提高效率,不需要循环整个结构进行比较

    心有多大,天有多高,一起奋斗!!
  • 相关阅读:
    语言基础
    进制转换
    ado属性扩展
    ado数据模型和数据访问类,泛型集合
    完整的修改和删除
    完整的删除
    修改
    类库
    接口
    抽象类
  • 原文地址:https://www.cnblogs.com/zhaolei1996/p/12441181.html
Copyright © 2011-2022 走看看