arrays - Set in ruby​​ 的优点

标签 arrays ruby hash set

Set 的主要优点似乎是保持独特的元素。但这可以在 Array 中轻松实现,

array = [2,3,4]
array | [2,5,6] # => [2,3,4,5,6]

我遇到的唯一明显特征(可能适用于少数用例)是,

set1 = [1,2,3].to_set
set2 = [2,1,3].to_set
set1 == set2 # => true
[1,2,3] == [2,1,3] # => false

既然 Array 有各种相关的功能和操作,我什么时候以及为什么要使用 Set

有很多比较ArraySet的链接,但我还没有遇到Set的重要应用。

最佳答案

当然,无论您可以使用 Set 做什么,都有一种方法可以使用 Array 来完成。使用 Set 的优点在于,由于它是基于 Hash 实现的,因此对它的大多数操作都是 O(1) 复杂度,而使用 Array 可以是 O(n)。

例子是:

Set.new([1, 2, 3]).include?(2) # O(1) complexity
[1, 2, 3].include?(2) # O(n) complexity

关于arrays - Set in ruby​​ 的优点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36548938/

相关文章:

c# - 如何将 double 转换为任意大小的字节数组?

ruby-on-rails - 测试 Stripe 的 webhooks - 总是出错

Ruby动态对象属性,发送vs实例变量集

ruby - 为什么要使用嵌套的 Ruby 模块来获取版本信息?

java - 减少java中的文件缓存

javascript - 如何创建一个具有多维数组输入、转换它并输出新的多维数组的函数

python - 数组中的 lambda 找不到变量值

javascript - apply 如何与采用逗号分隔参数的函数配合使用?

arrays - 使用数组的索引 0 子索引作为数据表中哈希的键

java - 最坏情况哈希函数