• equals()和hashcode()


    默认调用的情况:

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

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

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

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

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

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

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

    同时还需要重写equals()

  • 相关阅读:
    Android Zygote介绍
    Android binder介绍(下)
    Android binder介绍(上)
    Android init介绍(下)
    Android init介绍(上)
    Android 网络服务介绍
    Linux代理服务器使用
    Linux ALSA介绍
    ZigBee MAC层(下)
    ZigBee MAC层(上)
  • 原文地址:https://www.cnblogs.com/straybirds/p/5154314.html
Copyright © 2020-2023  润新知