@Beta @GwtIncompatible public class TreeRangeSet<C extends Comparable<?>> extends Object implements Serializable
Modifier and Type | Method and Description |
---|---|
void |
add(Range<C> rangeToAdd)
Adds the specified range to this
RangeSet (optional operation). |
void |
addAll(RangeSet<C> other)
Adds all of the ranges from the specified range set to this range set (optional operation).
|
Set<Range<C>> |
asDescendingSetOfRanges()
Returns a descending view of the disconnected ranges that
make up this range set.
|
Set<Range<C>> |
asRanges()
Returns a view of the disconnected ranges that make up this
range set.
|
void |
clear()
Removes all ranges from this
RangeSet (optional operation). |
RangeSet<C> |
complement()
Returns a view of the complement of this
RangeSet . |
boolean |
contains(C value)
Determines whether any of this range set's member ranges contains
value . |
static <C extends Comparable<?>> |
create()
Creates an empty
TreeRangeSet instance. |
static <C extends 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. |
boolean |
enclosesAll(RangeSet<C> other)
Returns
true if for each member range in other there exists a member range in
this range set which encloses it. |
boolean |
equals(Object obj)
Returns
true if obj is another RangeSet that contains the same ranges
according to Range.equals(Object) . |
int |
hashCode()
Returns
asRanges().hashCode() . |
boolean |
intersects(Range<C> range)
Returns
true if there exists a non-empty range enclosed by both a member range in this
range set and the specified range. |
boolean |
isEmpty()
Returns
true if this range set contains no ranges. |
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 . |
void |
remove(Range<C> rangeToRemove)
Removes the specified range from this
RangeSet (optional operation). |
void |
removeAll(RangeSet<C> other)
Removes all of the ranges from the specified range set from this range set (optional
operation).
|
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. |
String |
toString()
Returns a readable string representation of this range set.
|
public static <C extends Comparable<?>> TreeRangeSet<C> create()
TreeRangeSet
instance.public static <C extends Comparable<?>> TreeRangeSet<C> create(RangeSet<C> rangeSet)
TreeRangeSet
initialized with the ranges in the specified range set.public Set<Range<C>> asRanges()
RangeSet
Iterable.iterator()
method return the ranges in increasing order of lower bound
(equivalently, of upper bound).asRanges
in interface RangeSet<C extends Comparable<?>>
public Set<Range<C>> asDescendingSetOfRanges()
RangeSet
Iterable.iterator()
method return the ranges in decreasing order of lower bound
(equivalently, of upper bound).asDescendingSetOfRanges
in interface RangeSet<C extends Comparable<?>>
@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 Comparable<?>>
public boolean intersects(Range<C> range)
RangeSet
true
if there exists a non-empty range enclosed by both a member range in this
range set and the specified range. This is equivalent to calling
subRangeSet(otherRange)
and testing whether the resulting range set is non-empty.intersects
in interface RangeSet<C extends Comparable<?>>
public boolean encloses(Range<C> range)
RangeSet
true
if there exists a member range in this range set which
encloses the specified range.encloses
in interface RangeSet<C extends Comparable<?>>
public Range<C> span()
RangeSet
span
in interface RangeSet<C extends Comparable<?>>
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.
add
in interface RangeSet<C extends Comparable<?>>
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.
remove
in interface RangeSet<C extends Comparable<?>>
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.
complement
in interface RangeSet<C extends Comparable<?>>
public RangeSet<C> subRangeSet(Range<C> view)
RangeSet
RangeSet
with the specified range.
The returned view supports all optional operations supported by this RangeSet
, with
the caveat that an IllegalArgumentException
is thrown on an attempt to
add any range not enclosed by
view
.
subRangeSet
in interface RangeSet<C extends Comparable<?>>
public boolean contains(C value)
RangeSet
value
.contains
in interface RangeSet<C extends Comparable>
public boolean isEmpty()
RangeSet
true
if this range set contains no ranges.isEmpty
in interface RangeSet<C extends Comparable>
public void clear()
RangeSet
RangeSet
(optional operation). After this operation,
this.contains(c)
will return false for all c
.
This is equivalent to remove(Range.all())
.
clear
in interface RangeSet<C extends Comparable>
public boolean enclosesAll(RangeSet<C> other)
RangeSet
true
if for each member range in other
there exists a member range in
this range set which encloses it. It follows that
this.contains(value)
whenever other.contains(value)
. Returns true
if
other
is empty.
This is equivalent to checking if this range set RangeSet.encloses(com.google.common.collect.Range<C>)
each of the ranges in
other
.
enclosesAll
in interface RangeSet<C extends Comparable>
public void addAll(RangeSet<C> other)
RangeSet
other
.
This is equivalent to calling RangeSet.add(com.google.common.collect.Range<C>)
on each of the ranges in other
in turn.
addAll
in interface RangeSet<C extends Comparable>
public void removeAll(RangeSet<C> other)
RangeSet
other.contains(c)
, this.contains(c)
will
return false
.
This is equivalent to calling RangeSet.remove(com.google.common.collect.Range<C>)
on each of the ranges in other
in
turn.
removeAll
in interface RangeSet<C extends Comparable>
public boolean equals(@Nullable Object obj)
RangeSet
true
if obj
is another RangeSet
that contains the same ranges
according to Range.equals(Object)
.equals
in interface RangeSet<C extends Comparable>
equals
in class Object
public final int hashCode()
RangeSet
asRanges().hashCode()
.hashCode
in interface RangeSet<C extends Comparable>
hashCode
in class Object
public final String toString()
RangeSet
RangeSet
consisted of Range.closed(1, 3)
and Range.greaterThan(4)
,
this might return " [1..3](4..+∞)
"}.toString
in interface RangeSet<C extends Comparable>
toString
in class Object
Copyright © 2010-2016. All Rights Reserved.