Efficiencies of set operations vs array operations

2020-07-07 08:05发布

问题:

What are the differences in efficiencies between set and array for operations?

Examples:

  • lookups
  • iterations
  • includes?

回答1:

In Ruby, Set is written using an underlying Hash for its storage, and it should generally perform equivalent to a Hash. Thus:

  • include?: O(1) for Set, O(n) for Array
  • enumerations: O(n) for both
  • delete: O(1) for Set, O(n) for Array

...etc.

If by "lookups" you mean looking up by index, I'd note that the default Set implementation is unordered, so it doesn't support that operation in the same way an Array does.