zoukankan      html  css  js  c++  java
  • 为什么重写equals的时候,建议同时重写hashcode方法

    为什么重写equals的时候,建议同时重写hashcode方法?

    1.什么是hashcode
    hashcode是运用hash算法,就是把任意长度的输入,通过散列算法变换成固定长度的输出,这个输出就是hashcode。
    2.hashcode在java中的运用
    在java set集合中,当插入一个对象的时候,会判断集合中是否存在相同的对象。相同的判断依据是根据hashcode+equals方法,
    当输入对象的hashcode在集合中有相同的hashcode时,会到对应的散列存储中,比较equals,不同则插入,相同则放弃
    当输入对象的hashcode在集合中没有相同的hashcode时,就可以直接插入set结合
    3.为什么重写equals的时候,建议同时重写hashcode方法
    重写hashcode方法可以更加有效率的判断对象是否相同,在对象的set集合中,插入操作也会更有效率

    使用同一hash算法的时候:

    两个对象相同,hashcode必定相同
    hashcode相同,两个对象不一定相同(hash碰撞)

  • 相关阅读:
    图片点击后直接下载
    输入网址到页面呈现,以及首屏加载
    RESTful
    html语义化标签
    git 初学解决错误
    爬虫
    Scrapy安转遇到问题
    前端补充
    django-ORM
    django-web聊天
  • 原文地址:https://www.cnblogs.com/BigWrite/p/14393010.html
Copyright © 2011-2022 走看看