如何获取哈希中的下一个值



我有散列,例如

{ 1 => 5, 3 => 6, 5 => 5, 8 => 10, 11 => 11}

我有一个键-5,我需要得到下三个键值的散列。在这种情况下,结果将是:

{ 8 => 10, 11 => 11, 1 => 5}

我该怎么做?

这不是哈希表的常见用例。关键是能够有效地查找特定的键,而不是按顺序迭代键。

如果你想这样做,你需要选择另一个数据结构,要么代替哈希,要么与哈希一起(如果你仍然希望高效查找)。

如果你知道它们是整数键,你可以测试后续键的存在,直到你找到三个,但这效率很低,尤其是,例如,如果当前键是第二高的。您最好维护不同的数据结构。

正如其他人所说,您无法获得"下一个"值对。如果你专门寻找密钥都是数字的数字排序对,你可以这样做:

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"

你不能

Ruby散列是无序的。没有可靠的"下一个"键/值。

最新更新