hashCode() equals 梳理

本文详细解析了hashCode在散列存储中的作用,它用于将数据分组以提高查找效率。Java中的hashCode方法通常基于对象的内存地址计算,但可能存在不同对象地址对应相同hashCode的情况。equals方法则用来判断对象内容是否相等,对于String类,equals更关注字符串的值而非地址。在String类中,hashCode也被调整以考虑字符串的内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

概述

HashCode详解
hashCode是用来散列存储的, 就是比如1000万个数据,本来需要1000完个坑来存,如果此时需要判断新增数据是否与之前重复? 依次遍历1000万条数据就显得很蠢。 这时聪明的你就能想到了,应该先分类,先看新增数据是哪一类,再遍历这一类就好了,对,hashCode可以理解为范式数据的类别,一个hashCode一个类
那究竟有多少类呢? hash表就是所有类的展示。每一个hashCode都在酒里了,额不是,都在表里了。

java中的hashCode()方法

一般是对 一个对象的物理地址(内存地址)进行 hash算法, 求出的一个值。
ps:理论是是可以出现两个对象的地址不同,但是hashCode值相同的

equals方法

==

地址相同 && 值相同

String类中的equals方法和hashCode方法

String类只需要判断字符串值相同,就想认为它们相同,而不想关注地址
所以: equals方法就是这么写的
那hashCode方法也 不再考虑地址,而是考虑String对象的值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值