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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 和志强 中级黑马   /  2012-9-27 19:51  /  1445 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

哈希表的元素是无序存储的,为什么用foreach遍历,确每次顺序都一样

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

3 个回复

正序浏览
哈希表的内部可以是线性结构(也可以不是),但是从它的功能上来讲,并不算线性表。当然我们可以把他想象成一个线性结构。是一个与函数相关的线性结构。你可以想象就像我们看书本一样,书本的具体页数就是数据存储,而所谓的无序就是把目录索引打乱了,但页数还是顺序存在的。

(哈希表(hash table),即散列表,是根据关键码值(Key value)而直接进行访问的数据结构。其核心思想是选择一个哈希函数或者随机函数,用一个和记录相关的值作为函数的参数,生成存放该记录的块地址。这个算法的优点是寻址的时间复杂度是o(1),缺点是数据以无序的方式存储。
将数据存入哈希表时,利用哈希函数为该数据安排存储位置;查找指定值数据时,也按照哈希函数得到目标索引。)
希望对你有所帮助!

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
无序存储相当于C语言里面的链式存储,只是存储的空间的不是连续的,但是foreach遍历还是按照顺序输出,所以每次都一样

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
无序,就是存储的时候就以没有规律的方式存入,存入后顺序不会变,foreach循环遍历就以存储的顺序显示出来,所以每次都一样

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

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