Class: SortedSet
Relationships & Source Files | |
Super Chains via Extension / Inclusion / Inheritance | |
Class Chain:
self,
::Set
|
|
Instance Chain:
self,
::Set,
::Enumerable
|
|
Inherits: |
Set
|
Defined in: | lib/set.rb |
Overview
SortedSet
implements a ::Set that guarantees that its elements are yielded in sorted order (according to the return values of their #<=>
methods) when iterating over them.
All elements that are added to a SortedSet
must respond to the <=> method for comparison.
Also, all elements must be mutually comparable: el1 <=> el2
must not return nil
for any elements el1
and el2
, else an ArgumentError will be raised when iterating over the SortedSet
.
Example
require "set"
set = SortedSet.new([2, 1, 5, 6, 4, 5, 3, 3, 3])
ary = []
set.each do |obj|
ary << obj
end
p ary # => [1, 2, 3, 4, 5, 6]
set2 = SortedSet.new([1, 2, "3"])
set2.each { |obj| } # => raises ArgumentError: comparison of Fixnum with String failed
Class Method Summary
::Set - Inherited
Instance Attribute Summary
::Set - Inherited
#compare_by_identity | Makes the set compare its elements by their identity and returns self. |
#compare_by_identity? | Returns true if the set will compare its elements by their identity. |
#empty? | Returns true if the set contains no elements. |
Instance Method Summary
::Set - Inherited
#& | Returns a new set containing elements common to the set and the given enumerable object. |
#+ | Alias for Set#|. |
#- | Returns a new set built by duplicating the set, removing every element that appears in the given enumerable object. |
#< | Alias for Set#proper_subset?. |
#<< | Alias for Set#add. |
#<= | Alias for Set#subset?. |
#== | Returns true if two sets are equal. |
#> | Alias for Set#proper_superset?. |
#>= | Alias for Set#superset?. |
#^ | Returns a new set containing elements exclusive between the set and the given enumerable object. |
#add | Adds the given object to the set and returns self. |
#add? | Adds the given object to the set and returns self. |
#classify | Classifies the set by the return value of the given block and returns a hash of |
#clear | Removes all elements and returns self. |
#collect! | Replaces the elements with ones returned by collect(). |
#delete | Deletes the given object from the set and returns self. |
#delete? | Deletes the given object from the set and returns self. |
#delete_if | Deletes every element of the set for which block evaluates to true, and returns self. |
#difference | Alias for Set#-. |
#disjoint? | Returns true if the set and the given set have no element in common. |
#divide | Divides the set into a set of subsets according to the commonality defined by the given block. |
#each | Calls the given block once for each element in the set, passing the element as parameter. |
#flatten | Returns a new set that is a copy of the set, flattening each containing set recursively. |
#flatten! | Equivalent to Set#flatten, but replaces the receiver with the result in place. |
#include? | Returns true if the set contains the given object. |
#initialize_clone | Clone internal hash. |
#initialize_dup | Dup internal hash. |
#inspect | Returns a string containing a human-readable representation of the set. |
#intersect? | Returns true if the set and the given set have at least one element in common. |
#intersection | Alias for Set#&. |
#keep_if | Deletes every element of the set for which block evaluates to false, and returns self. |
#length | Alias for Set#size. |
#map! | Alias for Set#collect!. |
#member? | Alias for Set#include?. |
#merge | Merges the elements of the given enumerable object to the set and returns self. |
#proper_subset? | Returns true if the set is a proper subset of the given set. |
#proper_superset? | Returns true if the set is a proper superset of the given set. |
#reject! | Equivalent to Set#delete_if, but returns nil if no changes were made. |
#replace | Replaces the contents of the set with the contents of the given enumerable object and returns self. |
#select! | Equivalent to Set#keep_if, but returns nil if no changes were made. |
#size | Returns the number of elements. |
#subset? | Returns true if the set is a subset of the given set. |
#subtract | Deletes every element that appears in the given enumerable object and returns self. |
#superset? | Returns true if the set is a superset of the given set. |
#to_a | Converts the set to an array. |
#to_set | Returns self if no arguments are given. |
#union | Alias for Set#|. |
#| | Returns a new set built by merging the set and the elements of the given enumerable object. |
::Enumerable - Included
#to_set | Makes a set from the enumerable object with given arguments. |
Constructor Details
This class inherits a constructor from Set