@Beta @GwtIncompatible(value="uses NavigableMap") public class TreeRangeSet<C extends java.lang.Comparable<?>> extends AbstractRangeSet<C>
RangeSet
backed by a TreeMap
.Modifier and Type | Class and Description |
---|---|
(package private) class |
TreeRangeSet.AsRanges |
private class |
TreeRangeSet.Complement |
private static class |
TreeRangeSet.ComplementRangesByLowerBound<C extends java.lang.Comparable<?>> |
(package private) static class |
TreeRangeSet.RangesByUpperBound<C extends java.lang.Comparable<?>> |
private class |
TreeRangeSet.SubRangeSet |
private static class |
TreeRangeSet.SubRangeSetRangesByLowerBound<C extends java.lang.Comparable<?>> |
Modifier and Type | Field and Description |
---|---|
private java.util.Set<Range<C>> |
asRanges |
private RangeSet<C> |
complement |
(package private) java.util.NavigableMap<Cut<C>,Range<C>> |
rangesByLowerBound |
Modifier | Constructor and Description |
---|---|
private |
TreeRangeSet(java.util.NavigableMap<Cut<C>,Range<C>> rangesByLowerCut) |
Modifier and Type | Method and Description |
---|---|
void |
add(Range<C> rangeToAdd)
Adds the specified range to this
RangeSet (optional operation). |
java.util.Set<Range<C>> |
asRanges()
Returns a view of the disconnected ranges that make up this
range set.
|
RangeSet<C> |
complement()
Returns a view of the complement of this
RangeSet . |
static <C extends java.lang.Comparable<?>> |
create()
Creates an empty
TreeRangeSet instance. |
static <C extends java.lang.Comparable<?>> |
create(RangeSet<C> rangeSet)
Returns a
TreeRangeSet initialized with the ranges in the specified range set. |
boolean |
encloses(Range<C> range)
Returns
true if there exists a member range in this range set which
encloses the specified range. |
Range<C> |
rangeContaining(C value)
Returns the unique range from this range set that contains
value , or null if this range set does not contain value . |
private Range<C> |
rangeEnclosing(Range<C> range) |
void |
remove(Range<C> rangeToRemove)
Removes the specified range from this
RangeSet (optional operation). |
private void |
replaceRangeWithSameLowerBound(Range<C> range) |
Range<C> |
span()
Returns the minimal range which encloses all ranges
in this range set.
|
RangeSet<C> |
subRangeSet(Range<C> view)
Returns a view of the intersection of this
RangeSet with the specified range. |
addAll, clear, contains, enclosesAll, equals, hashCode, isEmpty, removeAll, toString
final java.util.NavigableMap<Cut<C extends java.lang.Comparable<?>>,Range<C extends java.lang.Comparable<?>>> rangesByLowerBound
public static <C extends java.lang.Comparable<?>> TreeRangeSet<C> create()
TreeRangeSet
instance.public static <C extends java.lang.Comparable<?>> TreeRangeSet<C> create(RangeSet<C> rangeSet)
TreeRangeSet
initialized with the ranges in the specified range set.public java.util.Set<Range<C>> asRanges()
RangeSet
Iterable.iterator()
method return the ranges in increasing order of lower bound
(equivalently, of upper bound).@Nullable public Range<C> rangeContaining(C value)
RangeSet
value
, or null
if this range set does not contain value
.rangeContaining
in interface RangeSet<C extends java.lang.Comparable<?>>
rangeContaining
in class AbstractRangeSet<C extends java.lang.Comparable<?>>
public boolean encloses(Range<C> range)
RangeSet
true
if there exists a member range in this range set which
encloses the specified range.public Range<C> span()
RangeSet
public void add(Range<C> rangeToAdd)
RangeSet
RangeSet
(optional operation). That is, for equal
range sets a and b, the result of a.add(range)
is that a
will be the minimal
range set for which both a.enclosesAll(b)
and a.encloses(range)
.
Note that range
will be coalesced with any ranges in
the range set that are connected with it. Moreover,
if range
is empty, this is a no-op.
public void remove(Range<C> rangeToRemove)
RangeSet
RangeSet
(optional operation). After this
operation, if range.contains(c)
, this.contains(c)
will return false
.
If range
is empty, this is a no-op.
public RangeSet<C> complement()
RangeSet
RangeSet
.
The returned view supports the RangeSet.add(com.google.common.collect.Range<C>)
operation if this RangeSet
supports
RangeSet.remove(com.google.common.collect.Range<C>)
, and vice versa.