Ruby 维护哈希插入顺序

标签 ruby hashtable

我正在寻找一种方法来维护我在 Ruby 中使用的哈希的插入顺序。我的数据来自数据库,并且已经按照我想要的方式进行分组/排序,但 Ruby 不保证在我的 1.8.4 版本中保持哈希顺序。

有什么解决方法吗?如果没有,我可以创建自定义比较器吗?

这是哈希:

{
"February"=>[0.5667, 14.6834, 79.7666, 261.8668, 342.1167, 723.517], 
"March"=>[0.0, 26.4667, 554.45, 681.3164, 2376.0668, 10353.0358], 
"May"=>[2.75, 34.6666, 342.1831, 1331.8999, 1589.617, 9282.9662], 
"July"=>[1.9, 2.3666, 59.45, 302.1501, 554.1652, 5195.0839], 
"June"=>[0.15, 24.2166, 244.1498, 335.6834, 536.067, 1498.949], 
"August"=>[0.0, 0.4, 9.3668, 30.7164, 67.7504, 162.0337], 
"April"=>[0.0, 8.3, 68.9331, 357.9168, 815.9662, 2870.217]
 }

任何想法都会很棒, 谢谢

最佳答案

Ruby 自版本 1.9(2007 年 12 月发布)以来维护哈希顺序(参见:http://www.igvita.com/2009/02/04/ruby-19-internals-ordered-hash/)

此外,还有一个叫做 orderedhash 的 gem。对于较旧的 ruby 。

关于Ruby 维护哈希插入顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7040617/

相关文章:

ruby - 如何将新的 rvm 安装与现有的 ruby​​ 版本相关联?

ruby-on-rails - ruby rails : controlling the layout of an error message in ActiveRecord

ruby - 当 “wrong number of arguments”出现时,Ruby自动添加参数。

ruby-on-rails - 为什么我不能用 gem install rails -v 4.0.0 安装 rails?

java - 如果需要多次访问数组元素,如何减少对数组的搜索?

C++ 程序无缘无故结束? (哈希表)

lisp - 在 Common Lisp 和 Let 中修改哈希表

ruby-on-rails - Capistrano: SSHKit::Command::失败:捆绑退出状态:1

C - 从文件中逐字读取并将其插入哈希表中

c - "Bad permissions for mapped region at address"哈希表的 Valgrind 错误