Set vs Array , difference

2020-02-10 12:06发布

What is the difference between Set and Array in Ruby except for the fact that sets keep unique elements while arrays can keep duplicate elements?

标签: ruby arrays set
3条回答
倾城 Initia
2楼-- · 2020-02-10 12:16

Another important difference is in the implementation of the include? method: an Array compares members based on the result of the == method, while a Set uses the eql? method.

查看更多
We Are One
3楼-- · 2020-02-10 12:19

For me the main difference is that Sets are implemented as hashes, so you have O(1) membership tests for elements.

查看更多
兄弟一词,经得起流年.
4楼-- · 2020-02-10 12:20

They are very different.

Array

  • An array is an ordered list of objects.
  • An array value can be accessed by referencing its integer position in the list (zero-indexed): a[3] references the 4th object in the array.
  • There is no restriction on what the values can be—duplicate values are allowed in arrays.
  • An array has an object literal notation: [1, 'apple', String, 1, :banana] (this creates and initializes a new Array).
  • Arrays are built in to the core ruby library.

Set

  • A set is an unordered pool of unique objects.
  • Since it's unordered, there is no integer index you can use to access specific elements of a set.
  • The uniqueness restriction means you can't have more than one copy of a value in the set.
  • There is no object literal notation for sets, you must create them via Set.new.
  • Set is not part of the core, but part of the standard library, and thus needs a require 'set'.
查看更多
登录 后发表回答