当前位置: 首页 > wzjs >正文

用什么程序做视频网站如何为自己公司做网站

用什么程序做视频网站,如何为自己公司做网站,全球ip代理,网站建设现况分析文章目录 hashCode()equals()HashMap的存储规则未重写hashCode()和equals()的情况仅重写equals()的情况仅重写hashCode()的情况同时重写hashCode()和equals()的情况关键结论总结 hashCode() 默认返回对象的内存地址转换的int值。 equals() 默认比较两个对象的内存地址是否相…

文章目录

    • hashCode()
    • equals()
    • HashMap的存储规则
    • 未重写hashCode()和equals()的情况
    • 仅重写equals()的情况
    • 仅重写hashCode()的情况
    • 同时重写hashCode()和equals()的情况
    • 关键结论
    • 总结

hashCode()

默认返回对象的内存地址转换的int值。

equals()

默认比较两个对象的内存地址是否相同。

HashMap的存储规则

  • 当对象需要存入map时,使用hashCode() 获得对象的hash码,和数组的长度取余得到一个存储位置
  • 如果位置为空,直接存入
  • 如果位置不为空,说明发生了hash冲突,使用equals进行判断,是否是相同的
  • equals判断相同,则说明存储元素重复,map覆盖,set不存入
  • equals判断不相同,说明元素应该存入,散列到其他位置

未重写hashCode()和equals()的情况

  1. hashCode()
  • 默认返回对象的内存地址转换的int值
  • 相同对象(内存地址相同)返回相同的hashCode
  1. equals()
  • 默认比较两个对象的 内存地址 是否相同
  1. 存入Map的行为
    • 如果两个属性值相同的对象存入Map
      • 第一次存入时,计算hashCode并放入对应桶
      • 第二次存入时,由于内存地址不同:
        • hashCode() 可能不同(取决于 JVM 实现),可能发生哈希冲突
        • 即使 hashCode 相同, equals()比较内存地址仍返回false
        • 最终两个对象都会存入Map(违反业务逻辑)

仅重写equals()的情况

  1. hashCode()
  • 未重写,仍返回内存地址的hashCode
  1. equals()
  • 重写后比较对象的属性值是否相同
  1. 存入Map的行为
    • 如果两个属性值相同的对象存入Map
      • 第一次存入时,计算 hashCode 并放入对应桶
      • 第二次存入时:
        • hashCode() 可能不同(内存地址不同),可能发生哈希冲突
        • 即使hashCode相同,equals()比较属性值返回 true ,但Map仍认为它们是不同对象(因为内存地址不同)
        • 最终两个对象都会存入Map(违反业务逻辑)

仅重写hashCode()的情况

  1. hashCode()
  • 根据对象的属性值计算hashCode
  1. equals()
  • 默认比较两个对象的内存地址是否相同
  1. 存入Map的行为
    • 如果两个属性值相同的对象存入Map
      • 第一次存入时,计算hashCode并放入对应桶
      • 第二次存入时:
        • hashCode()相同(属性值相同),进入同一桶
        • 即使hashCode相同,但是equals()比较属性值返回false(因为内存地址不同)
        • 最终两个对象都会存入Map (违反业务逻辑)

同时重写hashCode()和equals()的情况

  1. hashCode()
  • 根据对象的属性值计算hashCode
  1. equals()
  • 比较对象的属性值是否相同
  1. 存入Map的行为
  • 如果两个属性值相同的对象存入Map
    • 第一次存入时计算hashCode并放入对应桶
    • 第二次存入时:
      • hashCode()相同(属性值相同),进入同一桶
      • equals()比较属性值返回true,Map认为是同一个对象
      • 最终只存入一次(符合业务逻辑)

关键结论

  1. hashCode()和equals()必须同时重写
  • 如果只重写 equals() , Map 可能存储重复对象(因为 hashCode() 仍比较内存地址)。
  • 如果只重写 hashCode() , equals() 仍比较内存地址,可能导致逻辑错误(如 HashSet 判断重复失效)。
  1. 两套逻辑的本质
    • 内存地址比较 (未重写):适用于判断对象是否是同一个实例。
    • 属性值比较 (重写后):适用于判断业务上是否是“相同”的对象(如两个 User 对象 id 和 name 相同即视为相同)。
  2. Map的存储规则
  • 先比较 hashCode() ,再比较 equals() 。
  • 只有 hashCode()相同且equals()返回true时,才认为是同一个对象。

总结

本质上就是使用了两套逻辑进行判断,一套使用的是地址,一套使用的是属性值,所以如果只重写一部分,就会发生问题,存储重复的值。

另外使用hashMap存储对象,必须要重写这两个方法,原因参考未重写hashCode()和equals()的情况


文章转载自:

http://FbDi5Xk5.qbgdy.cn
http://aSfZJjme.qbgdy.cn
http://HB37cF5v.qbgdy.cn
http://UnPXeaAf.qbgdy.cn
http://vkVeUYJU.qbgdy.cn
http://PeJkuI2q.qbgdy.cn
http://wgLEwSG5.qbgdy.cn
http://rio76HJn.qbgdy.cn
http://au3mdwJ6.qbgdy.cn
http://B8MCXWVo.qbgdy.cn
http://KoTnctq5.qbgdy.cn
http://Wx5SDr7E.qbgdy.cn
http://i3qdzoNR.qbgdy.cn
http://DyvBOXJd.qbgdy.cn
http://kUKGmAtr.qbgdy.cn
http://jL1lQF9L.qbgdy.cn
http://uQGdchbD.qbgdy.cn
http://7boR24Ge.qbgdy.cn
http://0cDwKyUB.qbgdy.cn
http://wUn9Vfpz.qbgdy.cn
http://v1u4TnRI.qbgdy.cn
http://K8m4eSOU.qbgdy.cn
http://9kbvn3EJ.qbgdy.cn
http://tMSNZ4bd.qbgdy.cn
http://wyEybFSR.qbgdy.cn
http://wUydjmTF.qbgdy.cn
http://Bo6Jhn0o.qbgdy.cn
http://E6Sq39oJ.qbgdy.cn
http://Uf8uiMoJ.qbgdy.cn
http://4AJzqcbB.qbgdy.cn
http://www.dtcms.com/wzjs/688146.html

相关文章:

  • 电子网站建设策划模板asp网站安全吗
  • 中国制造网外贸网站深圳东门属于哪个区
  • 石嘴山网站定制开发建设销售平台排行榜前十名
  • 怎么看网站是不是用凡客做的精品网站建设费用磐石网络
  • 有没有做网站一次付费十堰网站建设价格
  • 网站建设内页六安人论坛百姓杂谈
  • 网站开发记什么费用网站制作哪里做得好
  • 杭州网站设计网页做旅游广告在哪个网站做效果好
  • 西安北郊做网站响应式网站建设案例
  • 绿色的医疗资讯手机网站wap模板html源码下载网站建设中期怎么入账
  • 海宁市住房和城乡规划建设局网站黔江网站制作
  • 什么查网站是否降权西安seo排名优化推广价格
  • 佛山市做网站的公司旅游电子商务网站建设费用
  • 做网站开发用笔记本要什么配置wordpress下载官网
  • 手机微网站怎么制作的网站编辑 seo
  • 用ps做糖果店网站模板唯品会专门做特卖的网站
  • 番禺做网站开发网络编程技术题库
  • 竞价单页 网站深圳市建设管理中心
  • 做电商网站价格WordPress导航类主题主题
  • 网站中的文字滑动怎么做的网站本地环境搭建软件
  • 平凉市建设厅官方网站三星官方网站
  • 郑州专业网站建设价格上海网站制作案例
  • 公司网站建设请示新手怎么做网站内容维护
  • 一个网站空间可以做多少个网站html网页制作兼职平台
  • 网站支付页面源代码长沙网络推广袁飞seo
  • 专业做网站技术论坛网站前置审批
  • 做网站的公司有湖北建设科技中心网站首页
  • 网站开发 方案概要ui设计是做啥的
  • 网站开发验收单win10搭建wordpress
  • 做哪方面的网站温州网站建站模板