Java中的HashCode方法

本文详细解释了hashCode方法的计算原理及应用场景,重点介绍了如何通过重写hashCode实现对象在散列集合中的唯一性判断,并探讨了其在提高集合操作效率方面的重要作用。

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

http://www.cnblogs.com/dolphin0520/p/3681042.html

hashCode

public int hashCode()
Returns a hash code for this string. The hash code for a String object is computed as
 s[0]*31^(n-1) + s[1]*31^(n-2) + ... + s[n-1]
 
//根据name、pass来计算hashCode值
public int hashCode()

{
return name.hashCode()
+ pass.hashCode() * 17;
}

重写hashCode()函数获得一个散列值。该散列值的作用:

1、在向集合中插入新的对象时用于判断该对象是否已经存在。如果生成的散列值不在集合中,则该对象一定不存在。反之不成立。

2、hashCode()方法通常和equal()方法同时出现用于与新元素比较。equal()方法的返回值为true时元素一定相同。先使用hashCode生成散列值判断散列值是否在集合中,散列值不在hashMap中则可直接把该元素添加至集合;存在则要用equal()判断元素是否相同(做最终裁决)。hashCode方法提高了效率。

3、对于包含容器类型的程序设计语言来说,基本上都会涉及到hashCode。在Java中也一样,hashCode方法的主要作用是为了配合基于散列的集合一起正常运行,这样的散列集合包括HashSet、HashMap以及HashTable。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值