如何在Ruby中建立高效搜索的数据结构?
我有一个哈希数组。每个散列看起来像:如何在Ruby中建立高效搜索的数据结构?,ruby,arrays,hash,ruby-1.9.3,Ruby,Arrays,Hash,Ruby 1.9.3,我有一个哈希数组。每个散列看起来像: 'date'=>6/23/2011, value1=>6, value2=>8, value3=>3, value4=>6 该数组大约有10000个散列元素 Ruby中是否有一种内置的方法可以有效地通过日期索引查找元素?我知道有Array.index,但它是否按顺序遍历数组 有没有更好的方法来设置我的数据,以便有效地访问 Ruby 1.9.3听起来像是在倒退。您应该有一个数组散列: {'6/23/2011' => [6,
'date'=>6/23/2011, value1=>6, value2=>8, value3=>3, value4=>6
该数组大约有10000个散列元素
Ruby中是否有一种内置的方法可以有效地通过日期索引查找元素?我知道有Array.index
,但它是否按顺序遍历数组
有没有更好的方法来设置我的数据,以便有效地访问
Ruby 1.9.3听起来像是在倒退。您应该有一个数组散列:
{'6/23/2011' => [6, 8, 3, 6]}
这样,给定一个日期,您就可以在固定时间内访问相应的数据。它还可以让您更清晰地访问值,而不是笨拙的“valueX”内容。散列也可以工作-我怀疑
value*
是更有意义的名称的占位符。根据,OP现在使用的正是这个。最初我使用的是散列(数组),但我想按元素号对数据进行迭代。例如,元素1000到2000。Ruby中有优雅的解决方案吗?@IdanArye是的,我用value*来简化这个问题。@b即使是,你也可以优雅地迭代散列的一部分。请看我对您的另一个问题的回答:每当您说“array”时,您都会失去搜索速度,这可能是因为您必须在搜索之前进行排序,或者您必须进行顺序搜索。考虑在任何时候进行查找时使用哈希。