黑马程序员技术交流社区
标题:
集合框架中set类HashCode方法
[打印本页]
作者:
郭运川
时间:
2014-2-8 09:10
标题:
集合框架中set类HashCode方法
本帖最后由 郭运川 于 2014-2-10 09:04 编辑
hashCode();里面的哈希值是否是唯一的?在下面的hashCode()中返回的return name.hashCode() + age*37;的值是多少,在哈希表中是如何计算的?
class Person
{
private String name;
private int age;
Person(String name,int age)
{
this.name = name;
this.age = age;
}
public int hashCode()
{
System.out.println(this.name + "......hashcode");
//return name.hashCode() + age;
return name.hashCode() + age*37;//为保证hashcode返回值得唯一性age可以乘以一个数
}
}
作者:
杨道红
时间:
2014-2-8 09:42
*37是为了保证增大哈希值随着age的变化而变化
作者:
郭运川
时间:
2014-2-8 11:29
这一点知道,我疑惑的是哈希值是自己随便指定的,还是有自己的规律,哈希值得作用是什么?
作者:
kira
时间:
2014-2-8 13:24
郭运川 发表于 2014-2-8 11:29
这一点知道,我疑惑的是哈希值是自己随便指定的,还是有自己的规律,哈希值得作用是什么? ...
只要覆盖过hashCode方法 随便定 作用是保证对象的唯一性
作者:
郭运川
时间:
2014-2-8 13:56
那什么叫哈希表呀?它是不是固定的值?作用是什么?
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2