黑马程序员技术交流社区

标题: 哈希表的遍历方式疑问 [打印本页]

作者: 我自信我很牛    时间: 2013-3-25 21:13
标题: 哈希表的遍历方式疑问
在遍历哈希表时,输出的顺序不是我们希望的顺序,在jvm底层是怎么实现的,linkedhashset却可以做到顺序遍历,又是怎么实现的。
作者: itserious    时间: 2013-3-25 21:26
哈希表,的底层就是用的hash算法。通过计算目标hash值来确定它应该存放的位置。
hash表的内部是一个可变长度的数组,这个长度是通个一个叫负载均衡因子的数值来控制的。
通过计算hash值,来确定脚标。即该存放的位置。再通过equals方法去判断是否相等。

而linkedhashset 是在哈希表 的基础上还加了一个链表。这个链表就可以用来记录目标
的前一个元素和后一个元素是什么,所以可以实现有顺序遍历了。

作者: 魏福伟    时间: 2013-3-25 21:34
哈希表通过哈希函数来得到所存储的地址,linkedhashset是通过链表实现的




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