Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Ruby中建立高效搜索的数据结构?_Ruby_Arrays_Hash_Ruby 1.9.3 - Fatal编程技术网

如何在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”时,您都会失去搜索速度,这可能是因为您必须在搜索之前进行排序,或者您必须进行顺序搜索。考虑在任何时候进行查找时使用哈希。