黑马程序员技术交流社区

标题: 哈希表的存储问题 [打印本页]

作者: 和志强    时间: 2012-9-27 19:51
标题: 哈希表的存储问题
哈希表的元素是无序存储的,为什么用foreach遍历,确每次顺序都一样
作者: 陈顺亮    时间: 2012-9-27 20:19
无序,就是存储的时候就以没有规律的方式存入,存入后顺序不会变,foreach循环遍历就以存储的顺序显示出来,所以每次都一样
作者: 彭书雄    时间: 2012-9-27 20:53
无序存储相当于C语言里面的链式存储,只是存储的空间的不是连续的,但是foreach遍历还是按照顺序输出,所以每次都一样
作者: 王伟(wangwei)    时间: 2012-9-28 08:02
哈希表的内部可以是线性结构(也可以不是),但是从它的功能上来讲,并不算线性表。当然我们可以把他想象成一个线性结构。是一个与函数相关的线性结构。你可以想象就像我们看书本一样,书本的具体页数就是数据存储,而所谓的无序就是把目录索引打乱了,但页数还是顺序存在的。

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




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