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

八股文——JAVA基础:hashCode()方法的作用与意义以及与equals方法的联动

hashCode() 方法的作用是根据对象的属性生成散列码,用于散列表快速定位存储桶位置。

散列码本身并不能唯一标识对象,不同对象可能会有相同的散列码(即发生哈希冲突)。

HashMapHashSet 等基于散列表的数据结构中,当两个对象的 hashCode 相同,会进一步用 equals 方法判断它们是否真正相等。对于 HashSet,如果 equals 返回 true,则拒绝重复插入;对于 HashMap,则覆盖已有 key 的 value。如果 equals 判断为不同,则通过链表或红黑树的方式解决冲突。

在容量不足时,散列表还会触发 rehash,重新分配桶位置以提升性能。

equals进行重写后,hashcode也需要重写,比如:

现在有一个类student,student有一个成员变量id,此时equals重写为:id相同时student相同。

但是现在hashcode并不知道,当遇到id相同但内容不同的两个student,hashcode会产生两个不同的散列码,这样就违背了相同的对象的散列码相同的准则。

相关文章:

  • 通过阿里云部署n8n工作流自动备份GitHub
  • Gartner《Everything Technical Professionals Need to KnowAbout DA Strategy》学习心得
  • RuoYi-Vue学习环境搭建
  • docker compose基本使用以及示例
  • 云端可视化耦合电磁场:麦克斯韦方程组的应用-AI云计算数值分析和代码验证
  • 学习使用Visual Studio分析.net内存转储文件的基本用法
  • MybatisPlus-03.快速入门-常用注解
  • 横向移动01
  • leetcode437-路径总和III
  • FLOPS、FLOP/s、TOPS概念
  • 手机流量监控App(GlassWire)使用指南
  • 自学嵌入式 day27 进程
  • Java 大视界 -- 基于 Java 的大数据分布式存储在科研大数据归档与长期保存中的应用(328)
  • Web应用开发 --- Tips
  • Tomcat服务概述
  • C++基础(FreeRDP编译)
  • 如何用 Kafka Manager 实现 Kafka 集群全面监控
  • Java笔记
  • 非常有科技感的wpf GroupBox 控件
  • 详解WSL(Hyper)网络配置