• Equals和GetHashCode


    Q:2个方法同时被重写的场景?

    A:DictionaryHashTablekey使用时,必须重写这两个方法;

    因为:
    根据key取值的时候也是把key转换成HashCode并且验证Equals后再取值,一定要注意验证时HashCodeEquals的关系是并且(&&)的关系。

    也就是说,只要GetHashCodeEqulas中有一个方法没有重写,在验证时没有重写的那个方法会调用基类的默认实现,而这两个方法的默认实现都是根据内存地址判断的,也就是说,其实一个方法的返回值永远会是false。其结果就是,存储的时候你可能任性的存,在取值的时候就是你哭着找不着娘了。

    注意事项:

    在程序的生命周期中,相同的对象、变量返回的HashCode是相同的,并且是唯一的。但是绝对不允许做持久性存储,程序一旦结束并重新启动后,同样的对象无法获得上次程序运行时的HashCode

    也就是HashCode值跟内存地址有关

    引用地址:

    https://www.cnblogs.com/xiaochen-vip8/p/5506478.html

  • 相关阅读:
    [POJ1743]Musical Theme
    ubuntu qq
    Separate code and data contexts: an architectural approach to virtual text sharing
    Python3发送post请求,自动记住cookie
    python 异步协程
    豆瓣爬虫
    pandas 使用
    房天下爬虫
    计算英文文章词频的两种方法
    LOW版统计词频
  • 原文地址:https://www.cnblogs.com/sunzhenyong/p/10874088.html
Copyright © 2020-2023  润新知