找了一下好像没有找到,只有 SortedSet,为何没有有序字典类?这个是很常用的容器,不应该没有啊。
好像 1.9 开始默认就是 ordered。
https://www.igvita.com/2009/02/04/ruby-19-internals-ordered-hash/
没有,ruby 的字典默认是有序的(但是没规范...看到 SO 上有回答者说甚至没有对这个顺序测试)
所以想要可靠可以选择用外部的 https://www.rubydoc.info/docs/rails/4.1.7/ActiveSupport/OrderedHash
看起来 ActiveSupport::OrderedHash
就是 Hash 而已。
啊哈,我理解你意思了,你想要 key 按顺序排列,Ruby Hash 是按插入序。
迭代的时候手工排序可以吗?
hash.sort.to_h.each do |key, value|
# ...
end
我写了个 Triez 可以满足你的需求,而且占空间比一般语言里的词典容器小,速度也更快
存储一个 600M 的 wikipedia 全英文词条列表,只需要 100M 的内存哦,而那些 TreeMap 什么的直接就炸内存了