比O(n)快得到数组元素的索引

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (36)

因为我有一个巨大的数组,并从中得到了一个值。我想得到数组中值的索引。还有别的办法吗?Array#index为了得到它?这个问题来自于需要保持真正庞大的数组和调用。Array#index无数次。

经过几次尝试,我发现缓存通过将结构存储为(value, index)字段而不是值本身给性能带来了巨大的进步。

不过,我想知道是否有一种更方便的方法可以在不缓存的情况下找到en元素的索引(或者有一种好的缓存技术可以提高性能。

提问于
用户回答回答于

将数组转换为散列

array = ['a', 'b', 'c']
hash = Hash[array.map.with_index.to_a]    # => {"a"=>0, "b"=>1, "c"=>2}
hash['b'] # => 1
用户回答回答于

为什么不使用索引或重新索引?

array = %w( a b c d e)
# get FIRST index of element searched
puts array.index('a')
# get LAST index of element searched
puts array.rindex('a')

所属标签

可能回答问题的人

  • 腾讯云数据库 TencentDB

    腾讯云 · 产品团队 (已认证)

    301 粉丝2 提问44 回答
  • EatRice

    17 粉丝0 提问169 回答
  • 华讯云

    1 粉丝0 提问151 回答
  • 成都加米谷大数据

    11 粉丝0 提问16 回答

扫码关注云+社区

领取腾讯云代金券