@Beta @GwtCompatible(emulated=true) public abstract class ContiguousSet<C extends Comparable> extends ImmutableSortedSet<C>
A sorted set of contiguous values in a given DiscreteDomain
.
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 <E> ImmutableSortedSet.Builder<E> |
builder(int initialCapacity)
Deprecated.
Use
ImmutableSortedSet.Builder#Builder(int, java.util.Comparator) ,
which offers better type-safety and comparator specification. |
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
equals, hashCode
add, addAll, asList, 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)
Returns a 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 boundpublic 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(value="NavigableSet") 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(value="NavigableSet") 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(value="NavigableSet") 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)
Returns the set of values that are contained in both this set and the 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()
Returns a range, closed on both ends, whose endpoints are the minimum and maximum values contained in this set. This is equivalent to range(CLOSED, CLOSED)
.
NoSuchElementException
- if this set is emptypublic 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.
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()
Returns a short-hand representation of the contents such as "[1..100]"
.
toString
in class AbstractCollection<C extends Comparable>
@Deprecated public static <E> ImmutableSortedSet.Builder<E> builder()
create(com.diffplug.common.collect.Range<C>, com.diffplug.common.collect.DiscreteDomain<C>)
.Not supported. ContiguousSet
instances are constructed with create(com.diffplug.common.collect.Range<C>, com.diffplug.common.collect.DiscreteDomain<C>)
. This method exists only to hide ImmutableSet.builder()
from consumers of ContiguousSet
.
UnsupportedOperationException
- always@Deprecated public static <E> ImmutableSortedSet.Builder<E> builder(int initialCapacity)
ImmutableSortedSet.Builder#Builder(int, java.util.Comparator)
,
which offers better type-safety and comparator specification.ImmutableSortedSet.Builder
, which offers
better type-safety, instead. This method exists only to hide
ImmutableSet.builder()
from consumers of ImmutableSortedSet
.UnsupportedOperationException
- always