A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 年少丶 中级黑马   /  2014-3-3 22:14  /  1391 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 年少丶 于 2014-3-4 12:32 编辑

hashCode有什么用?怎么求一个变量的hashCode值?

3 个回复

正序浏览
来许多人学了很长时间的Java,但一直不明白hashCode方法的作用, 我来解释一下吧。首先,想要明白hashCode的作用,你必须要先知道Java中的集合。   总的来说,Java中的集合(Collection)有两类,一类是List,再有一类是Set。 你知道它们的区别吗?前者集合内的元素是有序的,元素可以重复;后者元素无序,但元素不可重复。 那么这里就有一个比较严重的问题了:要想保证元素不重复,可两个元素是否重复应该依据什么来判断呢? 这就是Object.equals方法了。但是,如果每增加一个元素就检查一次,那么当元素很多时,后添加到集合中的元素比较的次数就非常多了。
回复 使用道具 举报
因为所有类继承了Object类,因此就都继承了老大类的方法hashCode(),作用是获取调用者的在堆内存中的地址值,它的返回值以整数形式来表示,不一定是真正的地址,通过某种转换表示这个地址而已。
使用时只需要直接调用就可:q.hashCode()
多数情况下不需要考虑它,使用它默认的方法就好,一旦要覆盖,那么就要连同equals()一起覆盖。才能保证程序正常工作。
回复 使用道具 举报
说道hashCode就要说道equals了,判断相同就用到的是hashCode。要说用到,还真少,大概在重写hashCode吧!还有.hashCode();不就求出hashCode值了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马