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
?
有很多比较Array
和Set
的链接,但我还没有遇到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/