@GwtCompatible(emulated=true) public abstract class ContiguousSet<C extends Comparable> extends ImmutableSortedSet<C>
DiscreteDomain
. Example:
ContiguousSet.create(Range.closed(5, 42), DiscreteDomain.integers())
Note that because bounded ranges over int
and long
values are so common, this
particular example can be written as just:
ContiguousSet.closed(5, 42)
Warning: Be extremely careful what you do with conceptually large instances (such as
ContiguousSet.create(Range.greaterThan(0), DiscreteDomain.integers()
). 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.
ImmutableSortedSet.Builder<E>
Modifier and Type | Method and Description |
---|---|
static <E> ImmutableSortedSet.Builder<E> |
builder()
|
static ContiguousSet<Integer> |
closed(int lower,
int upper)
Returns a nonempty contiguous set containing all
int values from lower
(inclusive) to upper (inclusive). |
static ContiguousSet<Long> |
closed(long lower,
long upper)
Returns a nonempty contiguous set containing all
long values from lower
(inclusive) to upper (inclusive). |
static ContiguousSet<Integer> |
closedOpen(int lower,
int upper)
Returns a contiguous set containing all
int values from lower (inclusive) to
upper (exclusive). |
static ContiguousSet<Long> |
closedOpen(long lower,
long upper)
Returns a contiguous set containing all
long values from lower (inclusive) to
upper (exclusive). |
static <C extends Comparable> |
create(Range<C> range,
DiscreteDomain<C> domain)
Returns a
ContiguousSet containing the same values in the given domain
contained by the range. |
ContiguousSet<C> |
headSet(C toElement) |
ContiguousSet<C> |
headSet(C toElement,
boolean inclusive) |
abstract ContiguousSet<C> |
intersection(ContiguousSet<C> other)
Returns the set of values that are contained in both this set and the other.
|
abstract Range<C> |
range()
Returns a range, closed on both ends, whose endpoints are the minimum and maximum values
contained in this set.
|
abstract Range<C> |
range(BoundType lowerBoundType,
BoundType upperBoundType)
Returns the minimal range with the given boundary types for which all values in this set are
contained within the range.
|
ContiguousSet<C> |
subSet(C fromElement,
boolean fromInclusive,
C toElement,
boolean toInclusive) |
ContiguousSet<C> |
subSet(C fromElement,
C toElement) |
ContiguousSet<C> |
tailSet(C fromElement) |
ContiguousSet<C> |
tailSet(C fromElement,
boolean inclusive) |
String |
toString()
Returns a short-hand representation of the contents such as
"[1..100]" . |
ceiling, comparator, copyOf, copyOf, copyOf, copyOf, copyOf, copyOf, copyOf, copyOfSorted, descendingIterator, descendingSet, first, floor, higher, iterator, last, lower, naturalOrder, of, of, of, of, of, of, of, orderedBy, pollFirst, pollLast, reverseOrder
asList, equals, hashCode
add, addAll, clear, contains, remove, removeAll, retainAll, toArray, toArray
containsAll, isEmpty, size
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
spliterator
add, addAll, clear, contains, containsAll, equals, hashCode, isEmpty, remove, removeAll, retainAll, size, toArray, toArray
parallelStream, removeIf, stream
public static <C extends Comparable> ContiguousSet<C> create(Range<C> range, DiscreteDomain<C> domain)
ContiguousSet
containing the same values in the given domain
contained by the range.IllegalArgumentException
- if neither range nor the domain has a lower bound, or if
neither has an upper bound@Beta public static ContiguousSet<Integer> closed(int lower, int upper)
int
values from lower
(inclusive) to upper
(inclusive). (These are the same values contained in Range.closed(lower, upper)
.)IllegalArgumentException
- if lower
is greater than upper
@Beta public static ContiguousSet<Long> closed(long lower, long upper)
long
values from lower
(inclusive) to upper
(inclusive). (These are the same values contained in Range.closed(lower, upper)
.)IllegalArgumentException
- if lower
is greater than upper
@Beta public static ContiguousSet<Integer> closedOpen(int lower, int upper)
int
values from lower
(inclusive) to
upper
(exclusive). If the endpoints are equal, an empty set is returned. (These are the
same values contained in Range.closedOpen(lower, upper)
.)IllegalArgumentException
- if lower
is greater than upper
@Beta public static ContiguousSet<Long> closedOpen(long lower, long upper)
long
values from lower
(inclusive) to
upper
(exclusive). If the endpoints are equal, an empty set is returned. (These are the
same values contained in Range.closedOpen(lower, upper)
.)IllegalArgumentException
- if lower
is greater than upper
public ContiguousSet<C> headSet(C toElement)
ImmutableSortedSet
This method returns a serializable ImmutableSortedSet
.
The SortedSet.headSet(E)
documentation states that a subset of a
subset throws an IllegalArgumentException
if passed a
toElement
greater than an earlier toElement
. However, this
method doesn't throw an exception in that situation, but instead keeps the
original toElement
.
headSet
in interface NavigableSet<C extends Comparable>
headSet
in interface SortedSet<C extends Comparable>
headSet
in class ImmutableSortedSet<C extends Comparable>
@GwtIncompatible public ContiguousSet<C> headSet(C toElement, boolean inclusive)
headSet
in interface NavigableSet<C extends Comparable>
headSet
in class ImmutableSortedSet<C extends Comparable>
public ContiguousSet<C> subSet(C fromElement, C toElement)
ImmutableSortedSet
This method returns a serializable ImmutableSortedSet
.
The SortedSet.subSet(E, E)
documentation states that a subset of a
subset throws an IllegalArgumentException
if passed a
fromElement
smaller than an earlier fromElement
. However,
this method doesn't throw an exception in that situation, but instead keeps
the original fromElement
. Similarly, this method keeps the
original toElement
, instead of throwing an exception, if passed a
toElement
greater than an earlier toElement
.
subSet
in interface NavigableSet<C extends Comparable>
subSet
in interface SortedSet<C extends Comparable>
subSet
in class ImmutableSortedSet<C extends Comparable>
@GwtIncompatible public ContiguousSet<C> subSet(C fromElement, boolean fromInclusive, C toElement, boolean toInclusive)
subSet
in interface NavigableSet<C extends Comparable>
subSet
in class ImmutableSortedSet<C extends Comparable>
public ContiguousSet<C> tailSet(C fromElement)
ImmutableSortedSet
This method returns a serializable ImmutableSortedSet
.
The SortedSet.tailSet(E)
documentation states that a subset of a
subset throws an IllegalArgumentException
if passed a
fromElement
smaller than an earlier fromElement
. However,
this method doesn't throw an exception in that situation, but instead keeps
the original fromElement
.
tailSet
in interface NavigableSet<C extends Comparable>
tailSet
in interface SortedSet<C extends Comparable>
tailSet
in class ImmutableSortedSet<C extends Comparable>
@GwtIncompatible public ContiguousSet<C> tailSet(C fromElement, boolean inclusive)
tailSet
in interface NavigableSet<C extends Comparable>
tailSet
in class ImmutableSortedSet<C extends Comparable>
public abstract ContiguousSet<C> intersection(ContiguousSet<C> other)
This method should always be used instead of
Sets.intersection(java.util.Set<E>, java.util.Set<?>)
for ContiguousSet
instances.
public abstract Range<C> range()
range(CLOSED, CLOSED)
.NoSuchElementException
- if this set is emptypublic abstract Range<C> range(BoundType lowerBoundType, BoundType upperBoundType)
Note that this method will return ranges with unbounded endpoints if BoundType.OPEN
is requested for a domain minimum or maximum. For example, if set
was created from the
range [1..Integer.MAX_VALUE]
then set.range(CLOSED, OPEN)
must return
[1..∞)
.
NoSuchElementException
- if this set is emptypublic String toString()
"[1..100]"
.toString
in class AbstractCollection<C extends Comparable>
@Deprecated public static <E> ImmutableSortedSet.Builder<E> builder()
create(com.google.common.collect.Range<C>, com.google.common.collect.DiscreteDomain<C>)
.ContiguousSet
instances are constructed with create(com.google.common.collect.Range<C>, com.google.common.collect.DiscreteDomain<C>)
. This
method exists only to hide ImmutableSet.builder()
from consumers of ContiguousSet
.UnsupportedOperationException
- alwaysCopyright © 2010–2017. All rights reserved.