打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Java中HashCode()方法
1.hashcode()到底是干什么用的?好像是和数据结构的hash表有关?java对象怎么会和hash表有关的?java中的对象都是存在一个hash表中吗?   
    
  当你的对象存储在HashSet,HashMap,HsahTable等以hash表为工作机制的容器的时候   你才需要关心这个函数,不是java中对象都是存在一个hash表里面   
    
  2.为什么a.equal(b)==true则必定a.hashcode()==b.hashcode()。equal代表内容,hashcode代表内存地址,难道我理解错了吗?   
      
  谁说equals是比较内容的,默认的equals   就是与   ==   一样的效果   
    
    
  3.很多类都重写了hashcode,比如Integer.hashcode返回的是Integer的intValue。他们为什么要重写呢?   
    
  就是因为Integer重写了equals()   方法   ,所以要重写hsahCode(),以保证a.equals(b)   为true时候,有a==b;重写只要为了满足可能把Integer对象放到hash容器里面   
    
  4.有人说a.equal(b)==true则必定a.hashcode()==b.hashcode();反之 a.hashcode()==b.hashcode()则不一定a.equal(b)==true;   那奇怪了,hashcode岂不是毫无用处了?大家都用hashcode做什么呢?   
    
  用hsahCode()主要是支持hash容器的正确运行,hash容器根据hashCode决定对象的存储位置   
  hash容器速度比较快    
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Java中Hash类容器使用指南
hashcode 详解
Hashcode的作用
详解重写equals()方法就必须重写hashCode()方法的原因
Java 理论与实践: 哈希
关于hashcode 里面 使用31 系数的问题
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服