Class: SortedSet
- Inherits:
-
Set
- Object
- Set
- SortedSet
- Defined in:
- lib/sorted_set.rb,
lib/sorted_set/jruby.rb,
lib/sorted_set/ruby3.rb,
lib/sorted_set/ruby4.rb
Overview
Ruby >= 4.0: Set is a built-in class backed by C code and no longer uses @hash. Subclassing Set automatically includes Set::SubclassCompatible, which delegates composite operations to primitive methods. We override those primitives to use RBTree.
Instance Method Summary collapse
- #add(o) ⇒ Object (also: #<<)
- #clear ⇒ Object
- #delete(o) ⇒ Object
- #each(&block) ⇒ Object
- #empty? ⇒ Boolean
- #freeze ⇒ Object
- #hash ⇒ Object
- #include?(o) ⇒ Boolean (also: #member?)
-
#initialize(enum = nil, &block) ⇒ SortedSet
constructor
A new instance of SortedSet.
- #initialize_clone(orig, freeze: nil) ⇒ Object
- #initialize_dup(orig) ⇒ Object
- #replace(enum) ⇒ Object
- #size ⇒ Object (also: #length)
- #to_a ⇒ Object
Constructor Details
#initialize(enum = nil, &block) ⇒ SortedSet
Returns a new instance of SortedSet.
9 10 11 12 |
# File 'lib/sorted_set/jruby.rb', line 9 def initialize(enum = nil, &block) @tree = java.util.TreeSet.new super end |
Instance Method Details
#add(o) ⇒ Object Also known as: <<
14 15 16 17 18 |
# File 'lib/sorted_set/jruby.rb', line 14 def add(o) check_frozen @tree.add(o) self end |
#clear ⇒ Object
47 48 49 50 51 |
# File 'lib/sorted_set/jruby.rb', line 47 def clear check_frozen @tree.clear self end |
#delete(o) ⇒ Object
21 22 23 24 25 |
# File 'lib/sorted_set/jruby.rb', line 21 def delete(o) check_frozen @tree.remove(o) self end |
#each(&block) ⇒ Object
32 33 34 35 36 |
# File 'lib/sorted_set/jruby.rb', line 32 def each(&block) block or return enum_for(__method__) { size } @tree.each(&block) self end |
#empty? ⇒ Boolean
43 44 45 |
# File 'lib/sorted_set/jruby.rb', line 43 def empty? @tree.is_empty end |
#freeze ⇒ Object
72 73 74 |
# File 'lib/sorted_set/jruby.rb', line 72 def freeze super end |
#hash ⇒ Object
68 69 70 |
# File 'lib/sorted_set/jruby.rb', line 68 def hash @tree.to_a.hash end |
#include?(o) ⇒ Boolean Also known as: member?
27 28 29 |
# File 'lib/sorted_set/jruby.rb', line 27 def include?(o) @tree.contains(o) end |
#initialize_clone(orig, freeze: nil) ⇒ Object
81 82 83 84 |
# File 'lib/sorted_set/jruby.rb', line 81 def initialize_clone(orig, freeze: nil) super @tree = orig.instance_variable_get(:@tree).dup end |
#initialize_dup(orig) ⇒ Object
76 77 78 79 |
# File 'lib/sorted_set/jruby.rb', line 76 def initialize_dup(orig) super @tree = orig.instance_variable_get(:@tree).dup end |
#replace(enum) ⇒ Object
53 54 55 56 57 58 59 60 61 62 |
# File 'lib/sorted_set/jruby.rb', line 53 def replace(enum) check_frozen if enum.instance_of?(self.class) @tree = enum.instance_variable_get(:@tree).dup else @tree.clear merge(enum) end self end |
#size ⇒ Object Also known as: length
38 39 40 |
# File 'lib/sorted_set/jruby.rb', line 38 def size @tree.size end |
#to_a ⇒ Object
64 65 66 |
# File 'lib/sorted_set/jruby.rb', line 64 def to_a @tree.to_a end |