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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 我自信我很牛 中级黑马   /  2013-3-25 21:13  /  1764 人查看  /  2 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

在遍历哈希表时,输出的顺序不是我们希望的顺序,在jvm底层是怎么实现的,linkedhashset却可以做到顺序遍历,又是怎么实现的。

点评

如果问题未解决,请继续追问回复者,如果问题已经解决,请将分类改为“已解决”,谢谢  发表于 2013-3-26 12:33

评分

参与人数 1技术分 +1 收起 理由
贾文泽 + 1

查看全部评分

2 个回复

倒序浏览
哈希表,的底层就是用的hash算法。通过计算目标hash值来确定它应该存放的位置。
hash表的内部是一个可变长度的数组,这个长度是通个一个叫负载均衡因子的数值来控制的。
通过计算hash值,来确定脚标。即该存放的位置。再通过equals方法去判断是否相等。

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

评分

参与人数 1技术分 +1 收起 理由
贾文泽 + 1

查看全部评分

回复 使用道具 举报
哈希表通过哈希函数来得到所存储的地址,linkedhashset是通过链表实现的

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马