关联数组,也称为哈希表或哈希映射,与标准数组类似,只是数组的索引可以是字符串而不是整数。在许多数据库应用程序和其他处理大量数据的程序中,关联数组是帮助高效地排序和访问信息的重要元素在关联数组的核心是一个标准数...
关联数组,也称为哈希表或哈希映射,与标准数组类似,只是数组的索引可以是字符串而不是整数。在许多数据库应用程序和其他处理大量数据的程序中,关联数组是帮助高效地排序和访问信息的重要元素在关联数组的核心是一个标准数组,它是用整数索引的,通常是这样。一种称为哈希函数的特殊算法将字符串索引转换为整数索引来查找值。这是一种一致的转换,因此,实际的整数索引不需要存储,而是根据每次需要从字符串中计算出来。一种称为哈希函数的特殊算法将字符串索引转换为整数索引以查找值。引用关联数组时使用的术语可能与会话时使用的术语略有不同关于普通数组。通常称为索引(数组中元素的数值位置)称为键。与键关联的数据称为值。这意味着,在关联数组中,键与值相关联,它与引用数据结构中标准数组中某个元素的索引相关。每个关联数组的核心是哈希函数。这是一种用于根据键确定值的数值索引的算法。有几种类型的哈希函数,其中一些用于对整数和一些设计用于处理字符串的键。在整数键的情况下,一个流行的方法是将键值除以数组的大小,然后使用除法的余数来获得唯一的索引值。对于字符串键,哈希函数可能要复杂得多有些方法包括将字符串中每个字符的数值相加,然后除以某个数字,或者只使用字符串的前几个字符来获得唯一的数字。从字符串中派生数字的方法有很多种。当处理关联数组中的大量键值对时,一个可能出现的问题称为冲突。当从一个键派生的整数索引与另一个键的整数索引相同时,就会发生冲突。然后这两个键就有效地指向值数组中的同一个索引。有各种解决冲突的方法,主要是因为在大多数实际应用中,它发生的概率很高,一种解决冲突的方法是让每个值索引实际上都是一个链表,这样,当多个键解析到该索引位置时,该位置可以容纳多个值。这称为链接,是处理冲突的一种简单方法,虽然它也可以减慢检索信息的时间。另一种处理冲突的方法叫做线性探测。当发生冲突时,线性探测通过在值数组中移动直到找到未使用的索引来工作。这种方法有助于保持数据在关联数组中的均匀分布,但它也会增加查找值所需的时间
-
发表于 2020-08-06 08:43
- 阅读 ( 1525 )
- 分类:电脑网络