Java基础面试-hashCode与equals

hashCode

hashCode( 的作用是获取哈希码,也称为散列码,它实际上是返回一个int整数。这个哈希码的作用是确定该对象在哈希表中的索引引位置,hashCode0 定义在]DK的Object.java中,Java中的任何类都包含有hashCodel 函数。散列表存储的是键值对(keyvalue),它的特点是: 能根据键"快速的检索出对应的"值"。这其中就利用到了散列码! (可以快速找到所需要的对象)

hashCode有什么用

以"HashSet如何检查重复"为例子来说明为什么要有hashCode:对象加入HashSet时,HashSet会先计算对象的hashcode值来判断对象加入的位置,看该位置是否有值,如果没有、HashSet会假设对象没有重复出现。但是如果发现有值,这时会调用equals ()方法来检查两个对象是否真的相同。如果两者相同,HashSet就不会让其加入操作成功。如果不同的话,就会重新散列到其他位置。这样就大大减少了equals的次数,相应就大大提高了执行速度。

  • 如果两个对象相等,则hashcode一定也是相同的
  • 两个对象相等,对两个对象分别调用equals方法都返回true
  • 两个对象有相同的hashcode值,它们也不一定是相等的
  • 因此,equals方法被覆盖过,则hashCode方法也必须被覆盖
  • hashCode0的默认行为是对堆上的对象产生独特值。如果没有重写hashCode0,则该cass的两个对象无论如(81街进
相关推荐
小蒜学长4 分钟前
编程语言在线学习平台的设计与实现(代码+数据库+LW)
java·spring boot·后端·编程语言在线学习平台·在线编码
octopus_c22 分钟前
C++ 模板详解:函数模板、类模板、特化与分离编译
开发语言·c++·算法
步行cgn30 分钟前
Spring MVC 执行流程详解:一次请求的完整旅程
java·spring·mvc
增量星球37 分钟前
Spring AI 2.0 Tool Calling 到底怎么跑起来的:从 @Tool 到两次模型调用
java·agent·springai·ai coding
步行cgn41 分钟前
Spring MVC 九大核心角色详解:请求处理链路中的每一个关键组件
java·spring·mvc
智恒百亿1 小时前
一台 5090 八卡服务器怎么分给一个团队用?多模型多任务的显存分配实战
java·大数据·人工智能
瑞码空间1 小时前
面向接口编程与开闭原则在模拟 JDBC 驱动中的应用
java·jdbc
Félix2511 小时前
Nacos学习笔记(SpringBoot/SpringCloud)
java·spring boot·spring
文丑颜不良啊2 小时前
LeetCode1581~1600题目解析
java·leetcode
香蕉大香蕉(06敬畏市场)2 小时前
MySQL 单点详解(06)
java·数据库·mysql·博客·实习