class Set

Copyright Β© 2002-2024 Akinori MUSHA <knu@iDaemons.org>

Documentation by Akinori MUSHA and Gavin Sinclair.

All rights reserved. You can redistribute and/or modify it under the same terms as Ruby.

The Set class implements a collection of unordered values with no duplicates. It is a hybrid of Array’s intuitive inter-operation facilities and Hash’s fast lookup.

Set is easy to use with Enumerable objects (implementing β€˜each`). Most of the initializer methods and binary operators accept generic Enumerable objects besides sets and arrays. An Enumerable object can be converted to Set using the `to_set` method.

Set uses a data structure similar to Hash for storage, except that it only has keys and no values.

ComparisonΒΆ ↑

The comparison operators <, >, <=, and >= are implemented as shorthand for the {proper_,}{subset?,superset?} methods. The <=> operator reflects this order, or returns nil for sets that both have distinct elements ({x, y} vs. {x, z} for example).

ExampleΒΆ ↑

s1 = Set[1, 2]                        #=> #<Set: {1, 2}>
s2 = [1, 2].to_set                    #=> #<Set: {1, 2}>
s1 == s2                              #=> true
s1.add("foo")                         #=> #<Set: {1, 2, "foo"}>
s1.merge([2, 6])                      #=> #<Set: {1, 2, "foo", 6}>
s1.subset?(s2)                        #=> false
s2.subset?(s1)                        #=> true

ContactΒΆ ↑

What’s HereΒΆ ↑

First, what's elsewhere. \Class \Set:

In particular, class Set does not have many methods of its own for fetching or for iterating. Instead, it relies on those in Enumerable.

Here, class Set provides methods that are useful for:

Methods for Creating a SetΒΆ ↑

Methods for Set OperationsΒΆ ↑

Methods for ComparingΒΆ ↑

Methods for QueryingΒΆ ↑

Methods for AssigningΒΆ ↑

Methods for DeletingΒΆ ↑

Methods for ConvertingΒΆ ↑

Methods for IteratingΒΆ ↑

Other MethodsΒΆ ↑