Java中的HashCode方法

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。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值