Ruby,Hash vs Array 哪个效率更高
Which is more efficient in Ruby, Hash vs Array
我正在通过规范 pickaxe book 学习 Ruby。
在那本书的第2.3节中,我遇到了一句话,
It’s more efficient to access array elements, but hashes provide more flexibility
据我了解,访问数组元素和按键查找哈希值都需要 O(1) 时间。
作者说数组访问效率更高是什么意思?它是否仅仅意味着数组更有效,因为数组的内部表示比散列更简单?
Does it simply mean that array is more efficient, because the internal representation of an array is simpler than a hash?
是的。算法的复杂性可能相同,但数组通常会更快,因为查找过程要简单得多。另一方面,当使用数组时,"keys"(索引)只能是整数,并且数组不是稀疏的——如果你存储到 a[100]
,之后数组中至少会有 101 个元素.
(对于极度稀疏的数组,哈希映射实际上应该表现更好)。
我正在通过规范 pickaxe book 学习 Ruby。 在那本书的第2.3节中,我遇到了一句话,
It’s more efficient to access array elements, but hashes provide more flexibility
据我了解,访问数组元素和按键查找哈希值都需要 O(1) 时间。
作者说数组访问效率更高是什么意思?它是否仅仅意味着数组更有效,因为数组的内部表示比散列更简单?
Does it simply mean that array is more efficient, because the internal representation of an array is simpler than a hash?
是的。算法的复杂性可能相同,但数组通常会更快,因为查找过程要简单得多。另一方面,当使用数组时,"keys"(索引)只能是整数,并且数组不是稀疏的——如果你存储到 a[100]
,之后数组中至少会有 101 个元素.
(对于极度稀疏的数组,哈希映射实际上应该表现更好)。