我有哈希例如
{ 1 => 5, 3 => 6, 5 => 5, 8 => 10, 11 => 11}
我有一个密钥 - 5,我需要使用下三个键值获取哈希值。在这种情况下,结果将是:
{ 8 => 10, 11 => 11, 1 => 5}
我怎么能这样做?
答案 0 :(得分:1)
这不是哈希表的常用用例。重点是能够有效地查找特定的键,而不是按顺序迭代键。
如果你想这样做,你需要选择另一种数据结构,而不是哈希或哈希(如果你仍然希望有效查找)。
如果你知道它们是整数键,你可以测试后续的键是否存在,直到找到三个,但效率非常低,尤其是,如果当前的那个是第二高的,例如。您可以更好地维护不同的数据结构。
答案 1 :(得分:0)
你不能
Ruby哈希是无序的。没有可靠的"下一个"键/值。
答案 2 :(得分:0)
正如其他人所说,你无法获得下一个'一对价值观。如果您正在寻找专门针对按键都是数字的数字排序对,您可以执行以下操作:
h = { 1 => 5, 3 => 6, 5 => 5, 8 => 10, 11 => 11}
sorted_keys = h.keys.sort
sorted_keys.each do |key|
p "#{key} = #{h[key]}"
end
返回:
"1 = 5"
"3 = 6"
"5 = 5"
"8 = 10"
"11 = 11"