黑马程序员技术交流社区

标题: 集合框架中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