黑马程序员技术交流社区

标题: HashSet、HashMap怎么取值 [打印本页]

作者: 马上都有    时间: 2014-5-20 17:02
标题: HashSet、HashMap怎么取值
我知道用hashset存入元素的时候是根据哈希值来存的,然后把哈希值存入哈希表。那么,取值的时候是按照哈希值的大小来取的么?还是按照哈希表的顺序来取的啊

作者: skill20    时间: 2014-5-20 17:09
可以想象成这个样子:集合里分了好多的区域,但要存入数据的时候,对数据取摸再存到不同的区域,要取的时候也一样,效率就提高了。
作者: 马上都有    时间: 2014-5-20 17:22
skill20 发表于 2014-5-20 17:09
可以想象成这个样子:集合里分了好多的区域,但要存入数据的时候,对数据取摸再存到不同的区域,要取的时候 ...

找区域是按照大小?
作者: skill20    时间: 2014-5-20 17:40
马上都有 发表于 2014-5-20 17:22
找区域是按照大小?

根据哈希表输出来的数字。
作者: 马上都有    时间: 2014-5-20 17:42
skill20 发表于 2014-5-20 17:40
根据哈希表输出来的数字。

我知道是那个值,但那个值也有大有小,
作者: skill20    时间: 2014-5-20 17:52
马上都有 发表于 2014-5-20 17:42
我知道是那个值,但那个值也有大有小,

无序,想看具体的可以去查哈希表的具体实现方式。
作者: 艮昕辶    时间: 2014-5-21 17:39
取出remove(Object obj)方法
先调用hashCode()
后调用equals()

作者: gentleman    时间: 2014-5-21 19:57
每一个存进去的对象都有一个门牌。hash值,只是表示一个地方




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2