我可以使用index来获取Ruby中的set元素吗?

时间:2014-07-05 05:18:12

标签: ruby set

假设我在Ruby s1中有一个集合:

#<Set: {12, 25}>

我使用s1.find_index(12)来获取索引0 我可以使用索引来取回set元素,比如s1 [0]以获得12?

我想这样做的原因是我的设置元素很大。我想存储set元素之间的链接。我使用索引来存储链接。

我正在使用Ruby 1.9.3

3 个答案:

答案 0 :(得分:1)

我认为你想使用ArrayHash

ary = []
hsh = {}

unless hsh[item]
  hash[item] = ary.size
  ary << item
end

然后当您在hsh中查找该项目时,您将获得该列表中项目的索引,并且实际上您将获得具有特定警告的集合的内部

答案 1 :(得分:0)

这可能是不可能的。 Set是无序列表。

  

Set实现了一组无序值,没有重复。这是Array直观的互操作设施和Hash快速查找的混合体。

答案 2 :(得分:0)

您可以通过以下方式从索引中获取集合中的元素:

my_set = Set.new([1, 4, 7])
if index = my_set.find_index(4)
  puts my_set.to_a[index]
end