Class ContiguousSet<C extends >
-
- <E>
-
- com.google.common.collect.ImmutableCollection<E>
-
- com.google.common.collect.ImmutableSet<E>
-
- com.google.common.collect.ImmutableSortedSet<C>
-
- com.google.common.collect.ContiguousSet<C>
-
- All Implemented Interfaces:
,
<C>
,<C>
,<C>
,<C>
,<C>
@GwtCompatible(emulated=true) public abstract class > extends ImmutableSortedSet<C>
A sorted set of contiguous values in a givenDiscreteDomain
. Example:ContiguousSet.create(Range.closed(5, 42), DiscreteDomain.integers())
Note that because bounded ranges over
int
andlong
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 or ) can cause major performance problems.- Since:
- 10.0
- Author:
- Gregory Kick
- See Also:
- Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class com.google.common.collect.ImmutableSortedSet
ImmutableSortedSet.Builder<E>
-
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Deprecated Methods Modifier and Type Method Description static <E> ImmutableSortedSet.Builder<E>
builder()
static <E> ImmutableSortedSet.Builder<E>
builderWithExpectedSize(int expectedSize)
Deprecated.Not supported by ImmutableSortedSet.static >
closed(int lower, int upper)
Returns a nonempty contiguous set containing allint
values fromlower
(inclusive) toupper
(inclusive).static >
closed(long lower, long upper)
Returns a nonempty contiguous set containing alllong
values fromlower
(inclusive) toupper
(inclusive).static >
closedOpen(int lower, int upper)
Returns a contiguous set containing allint
values fromlower
(inclusive) toupper
(exclusive).static >
closedOpen(long lower, long upper)
Returns a contiguous set containing alllong
values fromlower
(inclusive) toupper
(exclusive).static <E> ImmutableSortedSet<E>
copyOf(E[] elements)
Deprecated.Pass parameters of typeComparable
to useImmutableSortedSet.copyOf(Comparable[])
.static <C extends >
ContiguousSet<C>create(Range<C> range, DiscreteDomain<C> domain)
Returns aContiguousSet
containing the same values in the given domain contained by the range.ContiguousSet<C>
headSet(C toElement)
Returns a view of the portion of this set whose elements are strictly less thantoElement
.ContiguousSet<C>
headSet(C toElement, boolean inclusive)
Returns a view of the portion of this set whose elements are less than (or equal to, ifinclusive
is true)toElement
.abstract ContiguousSet<C>
intersection(ContiguousSet<C> other)
Returns the set of values that are contained in both this set and the other.static <E> ImmutableSortedSet<E>
of(E element)
Deprecated.Pass a parameter of typeComparable
to useImmutableSortedSet.of(Comparable)
.static <E> ImmutableSortedSet<E>
of(E e1, E e2)
Deprecated.Pass the parameters of typeComparable
to useImmutableSortedSet.of(Comparable, Comparable)
.static <E> ImmutableSortedSet<E>
of(E e1, E e2, E e3)
Deprecated.Pass the parameters of typeComparable
to useImmutableSortedSet.of(Comparable, Comparable, Comparable)
.static <E> ImmutableSortedSet<E>
of(E e1, E e2, E e3, E e4)
Deprecated.Pass the parameters of typeComparable
to useImmutableSortedSet.of(Comparable, Comparable, Comparable, Comparable)
.static <E> ImmutableSortedSet<E>
of(E e1, E e2, E e3, E e4, E e5)
Deprecated.Pass the parameters of typeComparable
to useImmutableSortedSet.of( Comparable, Comparable, Comparable, Comparable, Comparable)
.static <E> ImmutableSortedSet<E>
of(E e1, E e2, E e3, E e4, E e5, E e6, E... remaining)
Deprecated.Pass the parameters of typeComparable
to useImmutableSortedSet.of(Comparable, Comparable, Comparable, Comparable, Comparable, Comparable, Comparable...)
.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)
Returns a view of the portion of this set whose elements range fromfromElement
totoElement
.ContiguousSet<C>
subSet(C fromElement, C toElement)
Returns a view of the portion of this set whose elements range fromfromElement
, inclusive, totoElement
, exclusive.ContiguousSet<C>
tailSet(C fromElement)
Returns a view of the portion of this set whose elements are greater than or equal tofromElement
.ContiguousSet<C>
tailSet(C fromElement, boolean inclusive)
Returns a view of the portion of this set whose elements are greater than (or equal to, ifinclusive
is true)fromElement
.static <E> <E,?,ImmutableSet<E>>
toImmutableSet()
toString()
Returns a short-hand representation of the contents such as"[1..100]"
.-
Methods inherited from class com.google.common.collect.ImmutableSortedSet
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, spliterator, toImmutableSortedSet
-
Methods inherited from class com.google.common.collect.ImmutableSet
asList, equals, hashCode
-
-
-
-
Method Detail
-
create
public static <C extends > ContiguousSet<C> create(Range<C> range, DiscreteDomain<C> domain)
Returns aContiguousSet
containing the same values in the given domain contained by the range.- Throws:
- if neither range nor the domain has a lower bound, or if neither has an upper bound
- Since:
- 13.0
-
closed
@Beta public static > closed(int lower, int upper)
Returns a nonempty contiguous set containing allint
values fromlower
(inclusive) toupper
(inclusive). (These are the same values contained inRange.closed(lower, upper)
.)- Throws:
- if
lower
is greater thanupper
- Since:
- 23.0
-
closed
@Beta public static > closed(long lower, long upper)
Returns a nonempty contiguous set containing alllong
values fromlower
(inclusive) toupper
(inclusive). (These are the same values contained inRange.closed(lower, upper)
.)- Throws:
- if
lower
is greater thanupper
- Since:
- 23.0
-
closedOpen
@Beta public static > closedOpen(int lower, int upper)
Returns a contiguous set containing allint
values fromlower
(inclusive) toupper
(exclusive). If the endpoints are equal, an empty set is returned. (These are the same values contained inRange.closedOpen(lower, upper)
.)- Throws:
- if
lower
is greater thanupper
- Since:
- 23.0
-
closedOpen
@Beta public static > closedOpen(long lower, long upper)
Returns a contiguous set containing alllong
values fromlower
(inclusive) toupper
(exclusive). If the endpoints are equal, an empty set is returned. (These are the same values contained inRange.closedOpen(lower, upper)
.)- Throws:
- if
lower
is greater thanupper
- Since:
- 23.0
-
headSet
public ContiguousSet<C> headSet(C toElement)
Description copied from class:ImmutableSortedSet
Returns a view of the portion of this set whose elements are strictly less thantoElement
. The returned set is backed by this set, so changes in the returned set are reflected in this set, and vice-versa. The returned set supports all optional set operations that this set supports.The returned set will throw an
IllegalArgumentException
on an attempt to insert an element outside its range.Equivalent to
headSet(toElement, false)
.This method returns a serializable
ImmutableSortedSet
.The documentation states that a subset of a subset throws an if passed a
toElement
greater than an earliertoElement
. However, this method doesn't throw an exception in that situation, but instead keeps the originaltoElement
.- Specified by:
in interface
<>
- Specified by:
in interface
<>
- Overrides:
>
- Parameters:
toElement
- high endpoint (exclusive) of the returned set- Returns:
- a view of the portion of this set whose elements are strictly
less than
toElement
-
headSet
@GwtIncompatible public ContiguousSet<C> headSet(C toElement, boolean inclusive)
Description copied from interface:Returns a view of the portion of this set whose elements are less than (or equal to, ifinclusive
is true)toElement
. The returned set is backed by this set, so changes in the returned set are reflected in this set, and vice-versa. The returned set supports all optional set operations that this set supports.The returned set will throw an
IllegalArgumentException
on an attempt to insert an element outside its range.- Specified by:
in interface
<>
- Overrides:
>
- Parameters:
toElement
- high endpoint of the returned setinclusive
-true
if the high endpoint is to be included in the returned view- Returns:
- a view of the portion of this set whose elements are less than
(or equal to, if
inclusive
is true)toElement
- Since:
- 12.0
-
subSet
public ContiguousSet<C> subSet(C fromElement, C toElement)
Description copied from class:ImmutableSortedSet
Returns a view of the portion of this set whose elements range fromfromElement
, inclusive, totoElement
, exclusive. (IffromElement
andtoElement
are equal, the returned set is empty.) The returned set is backed by this set, so changes in the returned set are reflected in this set, and vice-versa. The returned set supports all optional set operations that this set supports.The returned set will throw an
IllegalArgumentException
on an attempt to insert an element outside its range.Equivalent to
subSet(fromElement, true, toElement, false)
.This method returns a serializable
ImmutableSortedSet
.The documentation states that a subset of a subset throws an if passed a
fromElement
smaller than an earlierfromElement
. However, this method doesn't throw an exception in that situation, but instead keeps the originalfromElement
. Similarly, this method keeps the originaltoElement
, instead of throwing an exception, if passed atoElement
greater than an earliertoElement
.- Specified by:
in interface
<>
- Specified by:
in interface
<>
- Overrides:
>
- Parameters:
fromElement
- low endpoint (inclusive) of the returned settoElement
- high endpoint (exclusive) of the returned set- Returns:
- a view of the portion of this set whose elements range from
fromElement
, inclusive, totoElement
, exclusive
-
subSet
@GwtIncompatible public ContiguousSet<C> subSet(C fromElement, boolean fromInclusive, C toElement, boolean toInclusive)
Description copied from interface:Returns a view of the portion of this set whose elements range fromfromElement
totoElement
. IffromElement
andtoElement
are equal, the returned set is empty unlessfromInclusive
andtoInclusive
are both true. The returned set is backed by this set, so changes in the returned set are reflected in this set, and vice-versa. The returned set supports all optional set operations that this set supports.The returned set will throw an
IllegalArgumentException
on an attempt to insert an element outside its range.- Specified by:
in interface
<>
- Overrides:
>
- Parameters:
fromElement
- low endpoint of the returned setfromInclusive
-true
if the low endpoint is to be included in the returned viewtoElement
- high endpoint of the returned settoInclusive
-true
if the high endpoint is to be included in the returned view- Returns:
- a view of the portion of this set whose elements range from
fromElement
, inclusive, totoElement
, exclusive - Since:
- 12.0
-
tailSet
public ContiguousSet<C> tailSet(C fromElement)
Description copied from class:ImmutableSortedSet
Returns a view of the portion of this set whose elements are greater than or equal tofromElement
. The returned set is backed by this set, so changes in the returned set are reflected in this set, and vice-versa. The returned set supports all optional set operations that this set supports.The returned set will throw an
IllegalArgumentException
on an attempt to insert an element outside its range.Equivalent to
tailSet(fromElement, true)
.This method returns a serializable
ImmutableSortedSet
.The documentation states that a subset of a subset throws an if passed a
fromElement
smaller than an earlierfromElement
. However, this method doesn't throw an exception in that situation, but instead keeps the originalfromElement
.- Specified by:
in interface
<>
- Specified by:
in interface
<>
- Overrides:
>
- Parameters:
fromElement
- low endpoint (inclusive) of the returned set- Returns:
- a view of the portion of this set whose elements are greater
than or equal to
fromElement
-
tailSet
@GwtIncompatible public ContiguousSet<C> tailSet(C fromElement, boolean inclusive)
Description copied from interface:Returns a view of the portion of this set whose elements are greater than (or equal to, ifinclusive
is true)fromElement
. The returned set is backed by this set, so changes in the returned set are reflected in this set, and vice-versa. The returned set supports all optional set operations that this set supports.The returned set will throw an
IllegalArgumentException
on an attempt to insert an element outside its range.- Specified by:
in interface
<>
- Overrides:
>
- Parameters:
fromElement
- low endpoint of the returned setinclusive
-true
if the low endpoint is to be included in the returned view- Returns:
- a view of the portion of this set whose elements are greater
than or equal to
fromElement
- Since:
- 12.0
-
intersection
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<?>)
forContiguousSet
instances.
-
range
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 torange(CLOSED, CLOSED)
.- Throws:
- if this set is empty
-
range
public 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, ifset
was created from the range[1..Integer.MAX_VALUE]
thenset.range(CLOSED, OPEN)
must return[1..∞)
.- Throws:
- if this set is empty
-
toString
public toString()
Returns a short-hand representation of the contents such as"[1..100]"
.- Overrides:
in class
<>
- Returns:
- a string representation of this collection
-
builder
public static <E> ImmutableSortedSet.Builder<E> builder()
Deprecated.Not supported.ContiguousSet
instances are constructed withcreate(com.google.common.collect.Range<C>, com.google.common.collect.DiscreteDomain<C>)
. This method exists only to hideImmutableSet.builder()
from consumers ofContiguousSet
.- Throws:
- always
-
toImmutableSet
public static <E> <E,?,ImmutableSet<E>> toImmutableSet()
Not supported. UseImmutableSortedSet.toImmutableSortedSet(java.util.Comparator<? super E>)
instead. This method exists only to hideImmutableSet.toImmutableSet()
from consumers ofImmutableSortedSet
.- Throws:
- always
- Since:
- 21.0
-
builderWithExpectedSize
public static <E> ImmutableSortedSet.Builder<E> builderWithExpectedSize(int expectedSize)
Deprecated.Not supported by ImmutableSortedSet.Not supported. This method exists only to hideImmutableSet.builderWithExpectedSize(int)
from consumers ofImmutableSortedSet
.- Throws:
- always
-
of
public static <E> ImmutableSortedSet<E> of(E element)
Deprecated.Pass a parameter of typeComparable
to useImmutableSortedSet.of(Comparable)
.Not supported. You are attempting to create a set that may contain a non-Comparable
element. Proper calls will resolve to the version inImmutableSortedSet
, not this dummy version.- Type Parameters:
E
- theSet
's element type- Parameters:
element
- the single element- Returns:
- a
Set
containing the specified element - Throws:
- always
-
of
public static <E> ImmutableSortedSet<E> of(E e1, E e2)
Deprecated.Pass the parameters of typeComparable
to useImmutableSortedSet.of(Comparable, Comparable)
.Not supported. You are attempting to create a set that may contain a non-Comparable
element. Proper calls will resolve to the version inImmutableSortedSet
, not this dummy version.- Type Parameters:
E
- theSet
's element type- Parameters:
e1
- the first elemente2
- the second element- Returns:
- a
Set
containing the specified elements - Throws:
- always
-
of
public static <E> ImmutableSortedSet<E> of(E e1, E e2, E e3)
Deprecated.Pass the parameters of typeComparable
to useImmutableSortedSet.of(Comparable, Comparable, Comparable)
.Not supported. You are attempting to create a set that may contain a non-Comparable
element. Proper calls will resolve to the version inImmutableSortedSet
, not this dummy version.- Type Parameters:
E
- theSet
's element type- Parameters:
e1
- the first elemente2
- the second elemente3
- the third element- Returns:
- a
Set
containing the specified elements - Throws:
- always
-
of
public static <E> ImmutableSortedSet<E> of(E e1, E e2, E e3, E e4)
Deprecated.Pass the parameters of typeComparable
to useImmutableSortedSet.of(Comparable, Comparable, Comparable, Comparable)
.Not supported. You are attempting to create a set that may contain a non-Comparable
element. Proper calls will resolve to the version inImmutableSortedSet
, not this dummy version.- Type Parameters:
E
- theSet
's element type- Parameters:
e1
- the first elemente2
- the second elemente3
- the third elemente4
- the fourth element- Returns:
- a
Set
containing the specified elements - Throws:
- always
-
of
public static <E> ImmutableSortedSet<E> of(E e1, E e2, E e3, E e4, E e5)
Deprecated.Pass the parameters of typeComparable
to useImmutableSortedSet.of( Comparable, Comparable, Comparable, Comparable, Comparable)
.Not supported. You are attempting to create a set that may contain a non-Comparable
element. Proper calls will resolve to the version inImmutableSortedSet
, not this dummy version.- Type Parameters:
E
- theSet
's element type- Parameters:
e1
- the first elemente2
- the second elemente3
- the third elemente4
- the fourth elemente5
- the fifth element- Returns:
- a
Set
containing the specified elements - Throws:
- always
-
of
public static <E> ImmutableSortedSet<E> of(E e1, E e2, E e3, E e4, E e5, E e6, E... remaining)
Deprecated.Pass the parameters of typeComparable
to useImmutableSortedSet.of(Comparable, Comparable, Comparable, Comparable, Comparable, Comparable, Comparable...)
.Not supported. You are attempting to create a set that may contain a non-Comparable
element. Proper calls will resolve to the version inImmutableSortedSet
, not this dummy version.- Type Parameters:
E
- theSet
's element type- Parameters:
e1
- the first elemente2
- the second elemente3
- the third elemente4
- the fourth elemente5
- the fifth elemente6
- the sixth elementremaining
- the seventh element- Returns:
- a
Set
containing the specified elements - Throws:
- always
-
copyOf
public static <E> ImmutableSortedSet<E> copyOf(E[] elements)
Deprecated.Pass parameters of typeComparable
to useImmutableSortedSet.copyOf(Comparable[])
.Not supported. You are attempting to create a set that may contain non-Comparable
elements. Proper calls will resolve to the version inImmutableSortedSet
, not this dummy version.- Throws:
- always
-
-