黑马程序员技术交流社区
标题:
hashCode
[打印本页]
作者:
年少丶
时间:
2014-3-3 22:14
标题:
hashCode
本帖最后由 年少丶 于 2014-3-4 12:32 编辑
hashCode有什么用?怎么求一个变量的hashCode值?
作者:
q527198615
时间:
2014-3-3 22:33
说道hashCode就要说道equals了,判断相同就用到的是hashCode。要说用到,还真少,大概在重写hashCode吧!还有.hashCode();不就求出hashCode值了
作者:
罗安迪
时间:
2014-3-3 22:44
因为所有类继承了Object类,因此就都继承了老大类的方法hashCode(),作用是获取调用者的在堆内存中的地址值,它的返回值以整数形式来表示,不一定是真正的地址,通过某种转换表示这个地址而已。
使用时只需要直接调用就可:q.hashCode()
多数情况下不需要考虑它,使用它默认的方法就好,一旦要覆盖,那么就要连同equals()一起覆盖。才能保证程序正常工作。
作者:
徐进
时间:
2014-3-4 16:03
来许多人学了很长时间的Java,但一直不明白hashCode方法的作用, 我来解释一下吧。首先,想要明白hashCode的作用,你必须要先知道Java中的集合。 总的来说,Java中的集合(Collection)有两类,一类是List,再有一类是Set。 你知道它们的区别吗?前者集合内的元素是有序的,元素可以重复;后者元素无序,但元素不可重复。 那么这里就有一个比较严重的问题了:要想保证元素不重复,可两个元素是否重复应该依据什么来判断呢? 这就是Object.equals方法了。但是,如果每增加一个元素就检查一次,那么当元素很多时,后添加到集合中的元素比较的次数就非常多了。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2