Ruby中Set
和Array
之间的区别是什么,除了集合保留唯一元素而数组可以保留重复元素这一事实?
答案 0 :(得分:31)
他们非常不同。
a[3]
引用数组中的第4个对象。[1, 'apple', String, 1, :banana]
(这会创建并初始化一个新数组)。Set.new
创建它们。Set
不是核心的一部分,而是标准库的一部分,因此需要require 'set'
。答案 1 :(得分:20)
对我而言,主要区别在于Set
被实现为哈希,因此您对元素进行了O(1)
成员资格测试。
答案 2 :(得分:4)
另一个重要区别在于include?
方法的实现:一个Array根据==
方法的结果比较成员,而一个Set使用eql?
方法。