|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectcom.google.common.collect.ImmutableRangeSet<C>
@Beta public final class ImmutableRangeSet<C extends java.lang.Comparable>
An efficient immutable implementation of a RangeSet
.
Nested Class Summary | |
---|---|
static class |
ImmutableRangeSet.Builder<C extends java.lang.Comparable<?>>
A builder for immutable range sets. |
Method Summary | ||
---|---|---|
void |
add(Range<C> range)
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). |
|
ImmutableSet<Range<C>> |
asRanges()
Returns a view of the disconnected ranges that make up this range set. |
|
ImmutableSortedSet<C> |
asSet(DiscreteDomain<C> domain)
Returns an ImmutableSortedSet containing the same values in the given domain
contained by this range set. |
|
static
|
builder()
Returns a new builder for an immutable range set. |
|
void |
clear()
Removes all ranges from this RangeSet (optional operation). |
|
ImmutableRangeSet<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
|
copyOf(RangeSet<C> rangeSet)
Returns an immutable copy of the specified RangeSet . |
|
boolean |
encloses(Range<C> otherRange)
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(java.lang.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 |
isEmpty()
Returns true if this range set contains no ranges. |
|
static
|
of()
Returns an empty immutable range set. |
|
static
|
of(Range<C> range)
Returns an immutable range set containing the specified single 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 . |
|
void |
remove(Range<C> range)
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. |
|
ImmutableRangeSet<C> |
subRangeSet(Range<C> range)
Returns a view of the intersection of this range set with the given range. |
|
java.lang.String |
toString()
Returns a readable string representation of this range set. |
Methods inherited from class java.lang.Object |
---|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
Method Detail |
---|
public static <C extends java.lang.Comparable> ImmutableRangeSet<C> of()
public static <C extends java.lang.Comparable> ImmutableRangeSet<C> of(Range<C> range)
range.isEmpty()
, this is equivalent to of()
.
public static <C extends java.lang.Comparable> ImmutableRangeSet<C> copyOf(RangeSet<C> rangeSet)
RangeSet
.
public boolean encloses(Range<C> otherRange)
RangeSet
true
if there exists a member range in this range set which
encloses the specified range.
encloses
in interface RangeSet<C extends java.lang.Comparable>
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>
public Range<C> span()
RangeSet
span
in interface RangeSet<C extends java.lang.Comparable>
public boolean isEmpty()
RangeSet
true
if this range set contains no ranges.
isEmpty
in interface RangeSet<C extends java.lang.Comparable>
public void add(Range<C> range)
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 java.lang.Comparable>
public void addAll(RangeSet<C> other)
RangeSet
other
.
This is equivalent to calling RangeSet.add(com.google.common.collect.Range
on each of the ranges in other
in turn.
addAll
in interface RangeSet<C extends java.lang.Comparable>
public void remove(Range<C> range)
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 java.lang.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
on each of the ranges in other
in
turn.
removeAll
in interface RangeSet<C extends java.lang.Comparable>
public ImmutableSet<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 java.lang.Comparable>
public ImmutableRangeSet<C> complement()
RangeSet
RangeSet
.
The returned view supports the RangeSet.add(com.google.common.collect.Range
operation if this RangeSet
supports
RangeSet.remove(com.google.common.collect.Range
, and vice versa.
complement
in interface RangeSet<C extends java.lang.Comparable>
public ImmutableRangeSet<C> subRangeSet(Range<C> range)
subRangeSet
in interface RangeSet<C extends java.lang.Comparable>
public ImmutableSortedSet<C> asSet(DiscreteDomain<C> domain)
ImmutableSortedSet
containing the same values in the given domain
contained by this range set.
Note: a.asSet(d).equals(b.asSet(d))
does not imply a.equals(b)
! For
example, a
and b
could be [2..4]
and (1..5)
, or the empty
ranges [3..3)
and [4..4)
.
Warning: Be extremely careful what you do with the asSet
view of a large
range set (such as ImmutableRangeSet.of(Range.greaterThan(0))
). Certain operations on
such a set can be performed efficiently, but others (such as Set.hashCode()
or
Collections.frequency(java.util.Collection>, java.lang.Object)
) can cause major performance problems.
The returned set's Object.toString()
method returns a short-hand form of the set's
contents, such as "[1..100]
"}.
java.lang.IllegalArgumentException
- if neither this range nor the domain has a lower bound, or if
neither has an upper boundpublic static <C extends java.lang.Comparable<?>> ImmutableRangeSet.Builder<C> builder()
public boolean contains(C value)
RangeSet
value
.
contains
in interface RangeSet<C extends java.lang.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 java.lang.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
each of the ranges in
other
.
enclosesAll
in interface RangeSet<C extends java.lang.Comparable>
public boolean equals(@Nullable java.lang.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 java.lang.Comparable>
equals
in class java.lang.Object
public final int hashCode()
RangeSet
asRanges().hashCode()
.
hashCode
in interface RangeSet<C extends java.lang.Comparable>
hashCode
in class java.lang.Object
public final java.lang.String toString()
RangeSet
RangeSet
consisted of Ranges.closed(1, 3)
and Ranges.greaterThan(4)
,
this might return " [1???3](4???+???)
"}.
toString
in interface RangeSet<C extends java.lang.Comparable>
toString
in class java.lang.Object
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |