ruby assoc 数组是内部哈希表吗?什么是查找时间复杂度?

is ruby assoc array a hashtable internally? what is lookup time complexity?

aa = [ %w[Someone 1],
      %w[Bla 2]]

p aa.assoc("Someone")
p aa.assoc("Bla")

# Result:
# ["Someone", "1"]
# ["Bla", "2"]

p aa.rassoc("1")
p aa.rassoc("2")

# Result:
# ["Someone", "1"]
# ["Bla", "2"]

ruby assoc 数组是内部哈希表吗?什么是查找时间复杂度? 例如这个调用是线性的还是 O(1) aa.assoc("Someone")

谢谢

这个讨论暗示它是线性搜索,而不是散列 table:http://error.news/question/4883140/does-ruby-arrayassoc-use-linear-search/

这是有道理的,因为你初始化的数据类型只是一个数组。 assoc() 只是一个操作它的函数。

尽管有一个哈希数据类型:http://ruby-doc.org/core-1.9.3/Hash.html