zoukankan      html  css  js  c++  java
  • equals()和hashcode()

    默认调用的情况:

    1.集合在存放对象时,首先判断hashcode(),再判断equals如果都是true,认为是相同的两个元素不进行存储。

       删除对象时,将从hashcode指定位置查找再删除

    2.在hashSet集合中的对象如果改变了对象的hashCode值将导致无法查找到以及无法删除集合中的对象,可能导致内存泄漏;

    因此以对象hashcode值作为定位的方式需要特别注意;

    3.对象的hashcode值必须满足一致性:即多次调用其值用来定位的时候都必须相同(比如对象存放和查找的时候)

    4.相同对象的hashcode是相等的;

    重写hashcode的场景:
    当需要认为多个对象某些值相同就是同一个对象的时候;譬如多个对象有些认为是相同的存放到集合中要排除掉

    同时还需要重写equals()

  • 相关阅读:
    linux命令大全
    IP协议
    TCP、IP、ARP协议之间的工作关系
    程序出现问题后
    HTTP(超文本传输协议)
    多线程
    syslog.conf文件
    logger命令
    gdb
    二、数据的存储结构
  • 原文地址:https://www.cnblogs.com/straybirds/p/5154314.html
Copyright © 2011-2022 走看看