我可以在 Ruby 中使用索引来获取集合元素吗?

问题描述 投票:0回答:4

假设我在 Ruby s1 中有一套:

#<Set: {12, 25}>

我使用 s1.find_index(12) 来获取索引 0 我可以使用索引来取回设置的元素,例如 s1[0] 来取回 12 吗?

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

我使用的是 Ruby 1.9.3

ruby set
4个回答
1
投票

我认为您想为此使用

Array
Hash

ary = []
hsh = {}

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

然后,当您稍后在

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


0
投票

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

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


0
投票

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

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

0
投票

您可以将集合转换为数组并使用索引访问其中的每个元素。

© www.soinside.com 2019 - 2024. All rights reserved.