Set的主要优点似乎是保持独特的元素.但这可以很容易地在Array中实现,
array = [2,3,4] array | [2,5,6] # => [2,4,6]
我遇到的唯一不同特征(可能适用于少数用例)是,
set1 = [1,2,3].to_set set2 = [2,1,3].to_set set1 == set2 # => true [1,3] == [2,3] # => false
由于Array具有与之相关的各种功能和操作,因此何时以及为何应该使用Set?
有许多链接可以比较Array和Set,但我没有遇到Set的重要应用.
解决方法
当然,无论你用Set做什么,都有办法用Array做.使用Set的优点在于,由于它是基于Hash实现的,因此大多数操作都是O(1)复杂度,而使用Array执行它可能是O(n).
例子是:
Set.new([1,3]).include?(2) # O(1) complexity [1,3].include?(2) # O(n) complexity