HashTable 的 Java 实现

2016-10-25 00:15:33 +08:00
 Powered
http://www.cnblogs.com/goodwin/p/4102702.html

HashTable在java中

计算hash(key)得到index索引

那么是把value放在一个数组中,index作索引

还是把key-value对放在对应的bucket中?
1816 次点击
所在节点    Java
4 条回复
SoloCompany
2016-10-25 01:09:08 +08:00
不管是什么实现 Bucket 当然需要存 key pair 了
否则,先不谈遍历,你 put 的时候怎么知道是否发生了 collision
Powered
2016-10-25 01:15:08 +08:00
@SoloCompany
所以是, bucket 中存 entry 对象, hash(key)得到的 index 是 bucket 的索引吗
SoloCompany
2016-10-25 01:20:20 +08:00
@Powered bucket 可以放一个链表,或者数组,因为你不能忽略 collision
cloud107202
2016-10-25 09:51:08 +08:00
一般 bucket 中是个 entry 链表, hash(key1)得到 bucket 的 index ,然后遍历链表,比对 key1 与链表每个 entry 对象的 key 。如果 hash 函数设计良好,元素均匀的分散在各个 bucket 中, entry 链表的遍历开销可认为是 O(1)

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/315175

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX