Class ImmutableSortedSet<E>
- All Implemented Interfaces:
Serializable
,Iterable<E>
,Collection<E>
,NavigableSet<E>
,SequencedCollection<E>
,SequencedSet<E>
,Set<E>
,SortedSet<E>
- Direct Known Subclasses:
ContiguousSet
NavigableSet
whose contents will never change, with many other important properties
detailed at ImmutableCollection
.
Warning: as with any sorted collection, you are strongly advised not to use a Comparator
or Comparable
type whose comparison behavior is inconsistent with
equals. That is, a.compareTo(b)
or comparator.compare(a, b)
should equal zero
if and only if a.equals(b)
. If this advice is not followed, the resulting
collection will not correctly obey its specification.
See the Guava User Guide article on immutable collections.
- Since:
- 2.0 (implements
NavigableSet
since 12.0) - Author:
- Jared Levy, Louis Wasserman
- See Also:
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic final class
A builder for creating immutable sorted set instances, especiallypublic static final
sets ("constant sets"), with a given comparator. -
Method Summary
Modifier and TypeMethodDescriptionasList()
Returns anImmutableList
containing the same elements, in the same order, as this collection.static <E> ImmutableSortedSet.Builder
<E> builder()
Deprecated.static <E> ImmutableSortedSet.Builder
<E> builderWithExpectedSize
(int expectedSize) Deprecated.Not supported by ImmutableSortedSet.Comparator
<? super E> Returns the comparator that orders the elements, which isOrdering.natural()
when the natural ordering of the elements is used.static <E extends Comparable<? super E>>
ImmutableSortedSet<E> copyOf
(E[] elements) Returns an immutable sorted set containing the given elements sorted by their natural ordering.static <E> ImmutableSortedSet
<E> Returns an immutable sorted set containing the given elements sorted by their natural ordering.static <E> ImmutableSortedSet
<E> copyOf
(Collection<? extends E> elements) Returns an immutable sorted set containing the given elements sorted by their natural ordering.static <E> ImmutableSortedSet
<E> copyOf
(Comparator<? super E> comparator, Iterable<? extends E> elements) Returns an immutable sorted set containing the given elements sorted by the givenComparator
.static <E> ImmutableSortedSet
<E> copyOf
(Comparator<? super E> comparator, Collection<? extends E> elements) Returns an immutable sorted set containing the given elements sorted by the givenComparator
.static <E> ImmutableSortedSet
<E> copyOf
(Comparator<? super E> comparator, Iterator<? extends E> elements) Returns an immutable sorted set containing the given elements sorted by the givenComparator
.static <E> ImmutableSortedSet
<E> Returns an immutable sorted set containing the given elements sorted by their natural ordering.static <Z> ImmutableSortedSet
<Z> copyOf
(Z[] elements) Deprecated.Pass parameters of typeComparable
to usecopyOf(Comparable[])
.static <E> ImmutableSortedSet
<E> copyOfSorted
(SortedSet<E> sortedSet) Returns an immutable sorted set containing the elements of a sorted set, sorted by the sameComparator
.abstract UnmodifiableIterator
<E> first()
abstract UnmodifiableIterator
<E> iterator()
Returns an unmodifiable iterator across the elements in this collection.last()
static <E extends Comparable<?>>
ImmutableSortedSet.Builder<E> Returns a builder that creates immutable sorted sets whose elements are ordered by their natural ordering.static <E> ImmutableSortedSet
<E> of()
Returns the empty immutable sorted set.static <E extends Comparable<? super E>>
ImmutableSortedSet<E> of
(E e1) Returns an immutable sorted set containing a single element.static <E> ImmutableSortedSet
<E> of
(E e1) Deprecated.Pass a parameter of typeComparable
to useof(Comparable)
.static <E extends Comparable<? super E>>
ImmutableSortedSet<E> of
(E e1, E e2) Returns an immutable sorted set containing the given elements sorted by their natural ordering.static <E> ImmutableSortedSet
<E> of
(E e1, E e2) Deprecated.Pass the parameters of typeComparable
to useof(Comparable, Comparable)
.static <E extends Comparable<? super E>>
ImmutableSortedSet<E> of
(E e1, E e2, E e3) Returns an immutable sorted set containing the given elements sorted by their natural ordering.static <E> ImmutableSortedSet
<E> of
(E e1, E e2, E e3) Deprecated.Pass the parameters of typeComparable
to useof(Comparable, Comparable, Comparable)
.static <E extends Comparable<? super E>>
ImmutableSortedSet<E> of
(E e1, E e2, E e3, E e4) Returns an immutable sorted set containing the given elements sorted by their natural ordering.static <E> ImmutableSortedSet
<E> of
(E e1, E e2, E e3, E e4) Deprecated.Pass the parameters of typeComparable
to useof(Comparable, Comparable, Comparable, Comparable)
.static <E extends Comparable<? super E>>
ImmutableSortedSet<E> of
(E e1, E e2, E e3, E e4, E e5) Returns an immutable sorted set containing the given elements sorted by their natural ordering.static <E> ImmutableSortedSet
<E> of
(E e1, E e2, E e3, E e4, E e5) Deprecated.Pass the parameters of typeComparable
to useof(Comparable, Comparable, Comparable, Comparable, Comparable)
.static <E extends Comparable<? super E>>
ImmutableSortedSet<E> of
(E e1, E e2, E e3, E e4, E e5, E e6, E... remaining) Returns an immutable sorted set containing the given elements sorted by their natural ordering.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 useof(Comparable, Comparable, Comparable, Comparable, Comparable, Comparable, Comparable...)
.static <E> ImmutableSortedSet.Builder
<E> orderedBy
(Comparator<E> comparator) Returns a builder that creates immutable sorted sets with an explicit comparator.Deprecated.Unsupported operation.pollLast()
Deprecated.Unsupported operation.static <E extends Comparable<?>>
ImmutableSortedSet.Builder<E> Returns a builder that creates immutable sorted sets whose elements are ordered by the reverse of their natural ordering.static <E> Collector
<E, ?, ImmutableSet<E>> Deprecated.static <E> Collector
<E, ?, ImmutableSortedSet<E>> toImmutableSortedSet
(Comparator<? super E> comparator) Returns aCollector
that accumulates the input elements into a newImmutableSortedSet
, ordered by the specified comparator.Methods inherited from class com.google.common.collect.ImmutableSet
equals, hashCode
Methods inherited from class com.google.common.collect.ImmutableCollection
add, addAll, clear, contains, remove, removeAll, removeIf, retainAll, toArray, toArray
Methods inherited from class java.util.AbstractCollection
containsAll, isEmpty, size, toString
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Methods inherited from interface java.util.Collection
parallelStream, removeIf, stream, toArray
Methods inherited from interface java.util.NavigableSet
removeFirst, removeLast, reversed
-
Method Details
-
toImmutableSortedSet
public static <E> Collector<E,?, toImmutableSortedSetImmutableSortedSet<E>> (Comparator<? super E> comparator) Returns aCollector
that accumulates the input elements into a newImmutableSortedSet
, ordered by the specified comparator.If the elements contain duplicates (according to the comparator), only the first duplicate in encounter order will appear in the result.
- Since:
- 21.0
-
of
Returns the empty immutable sorted set.Performance note: the instance returned is a singleton.
-
of
Returns an immutable sorted set containing a single element. -
of
Returns an immutable sorted set containing the given elements sorted by their natural ordering. When multiple elements are equivalent according toComparable.compareTo(T)
, only the first one specified is included.- Throws:
NullPointerException
- if any element is null
-
of
Returns an immutable sorted set containing the given elements sorted by their natural ordering. When multiple elements are equivalent according toComparable.compareTo(T)
, only the first one specified is included.- Throws:
NullPointerException
- if any element is null
-
of
Returns an immutable sorted set containing the given elements sorted by their natural ordering. When multiple elements are equivalent according toComparable.compareTo(T)
, only the first one specified is included.- Throws:
NullPointerException
- if any element is null
-
of
public static <E extends Comparable<? super E>> ImmutableSortedSet<E> of(E e1, E e2, E e3, E e4, E e5) Returns an immutable sorted set containing the given elements sorted by their natural ordering. When multiple elements are equivalent according toComparable.compareTo(T)
, only the first one specified is included.- Throws:
NullPointerException
- if any element is null
-
of
public static <E extends Comparable<? super E>> ImmutableSortedSet<E> of(E e1, E e2, E e3, E e4, E e5, E e6, E... remaining) Returns an immutable sorted set containing the given elements sorted by their natural ordering. When multiple elements are equivalent according toComparable.compareTo(T)
, only the first one specified is included.- Throws:
NullPointerException
- if any element is null- Since:
- 3.0 (source-compatible since 2.0)
-
copyOf
Returns an immutable sorted set containing the given elements sorted by their natural ordering. When multiple elements are equivalent according toComparable.compareTo(T)
, only the first one specified is included.- Throws:
NullPointerException
- if any ofelements
is null- Since:
- 3.0
-
copyOf
Returns an immutable sorted set containing the given elements sorted by their natural ordering. When multiple elements are equivalent according tocompareTo()
, only the first one specified is included. To create a copy of aSortedSet
that preserves the comparator, callcopyOfSorted(java.util.SortedSet<E>)
instead. This method iterates overelements
at most once.Note that if
s
is aSet<String>
, thenImmutableSortedSet.copyOf(s)
returns anImmutableSortedSet<String>
containing each of the strings ins
, whileImmutableSortedSet.of(s)
returns anImmutableSortedSet<Set<String>>
containing one element (the given set itself).Despite the method name, this method attempts to avoid actually copying the data when it is safe to do so. The exact circumstances under which a copy will or will not be performed are undocumented and subject to change.
This method is not type-safe, as it may be called on elements that are not mutually comparable.
- Throws:
ClassCastException
- if the elements are not mutually comparableNullPointerException
- if any ofelements
is null
-
copyOf
Returns an immutable sorted set containing the given elements sorted by their natural ordering. When multiple elements are equivalent according tocompareTo()
, only the first one specified is included. To create a copy of aSortedSet
that preserves the comparator, callcopyOfSorted(java.util.SortedSet<E>)
instead. This method iterates overelements
at most once.Note that if
s
is aSet<String>
, thenImmutableSortedSet.copyOf(s)
returns anImmutableSortedSet<String>
containing each of the strings ins
, whileImmutableSortedSet.of(s)
returns anImmutableSortedSet<Set<String>>
containing one element (the given set itself).Note: Despite what the method name suggests, if
elements
is anImmutableSortedSet
, it may be returned instead of a copy.This method is not type-safe, as it may be called on elements that are not mutually comparable.
This method is safe to use even when
elements
is a synchronized or concurrent collection that is currently being modified by another thread.- Throws:
ClassCastException
- if the elements are not mutually comparableNullPointerException
- if any ofelements
is null- Since:
- 7.0 (source-compatible since 2.0)
-
copyOf
Returns an immutable sorted set containing the given elements sorted by their natural ordering. When multiple elements are equivalent according tocompareTo()
, only the first one specified is included.This method is not type-safe, as it may be called on elements that are not mutually comparable.
- Throws:
ClassCastException
- if the elements are not mutually comparableNullPointerException
- if any ofelements
is null
-
copyOf
public static <E> ImmutableSortedSet<E> copyOf(Comparator<? super E> comparator, Iterator<? extends E> elements) Returns an immutable sorted set containing the given elements sorted by the givenComparator
. When multiple elements are equivalent according tocompareTo()
, only the first one specified is included.- Throws:
NullPointerException
- ifcomparator
or any ofelements
is null
-
copyOf
public static <E> ImmutableSortedSet<E> copyOf(Comparator<? super E> comparator, Iterable<? extends E> elements) Returns an immutable sorted set containing the given elements sorted by the givenComparator
. When multiple elements are equivalent according tocompare()
, only the first one specified is included. This method iterates overelements
at most once.Despite the method name, this method attempts to avoid actually copying the data when it is safe to do so. The exact circumstances under which a copy will or will not be performed are undocumented and subject to change.
- Throws:
NullPointerException
- ifcomparator
or any ofelements
is null
-
copyOf
public static <E> ImmutableSortedSet<E> copyOf(Comparator<? super E> comparator, Collection<? extends E> elements) Returns an immutable sorted set containing the given elements sorted by the givenComparator
. When multiple elements are equivalent according tocompareTo()
, only the first one specified is included.Despite the method name, this method attempts to avoid actually copying the data when it is safe to do so. The exact circumstances under which a copy will or will not be performed are undocumented and subject to change.
This method is safe to use even when
elements
is a synchronized or concurrent collection that is currently being modified by another thread.- Throws:
NullPointerException
- ifcomparator
or any ofelements
is null- Since:
- 7.0 (source-compatible since 2.0)
-
copyOfSorted
Returns an immutable sorted set containing the elements of a sorted set, sorted by the sameComparator
. That behavior differs fromcopyOf(Iterable)
, which always uses the natural ordering of the elements.Despite the method name, this method attempts to avoid actually copying the data when it is safe to do so. The exact circumstances under which a copy will or will not be performed are undocumented and subject to change.
This method is safe to use even when
sortedSet
is a synchronized or concurrent collection that is currently being modified by another thread.- Throws:
NullPointerException
- ifsortedSet
or any of its elements is null
-
orderedBy
Returns a builder that creates immutable sorted sets with an explicit comparator. If the comparator has a more general type than the set being generated, such as creating aSortedSet<Integer>
with aComparator<Number>
, use theImmutableSortedSet.Builder
constructor instead.- Throws:
NullPointerException
- ifcomparator
is null
-
reverseOrder
Returns a builder that creates immutable sorted sets whose elements are ordered by the reverse of their natural ordering. -
naturalOrder
Returns a builder that creates immutable sorted sets whose elements are ordered by their natural ordering. The sorted sets useOrdering.natural()
as the comparator. This method provides more type-safety thanbuilder()
, as it can be called only for classes that implementComparable
. -
comparator
Returns the comparator that orders the elements, which isOrdering.natural()
when the natural ordering of the elements is used. Note that its behavior is not consistent withSortedSet.comparator()
, which returnsnull
to indicate natural ordering.- Specified by:
comparator
in interfaceSortedSet<E>
-
iterator
Description copied from class:ImmutableCollection
Returns an unmodifiable iterator across the elements in this collection.- Specified by:
iterator
in interfaceCollection<E>
- Specified by:
iterator
in interfaceIterable<E>
- Specified by:
iterator
in interfaceNavigableSet<E>
- Specified by:
iterator
in interfaceSet<E>
- Specified by:
iterator
in classImmutableSet<E>
-
headSet
This method returns a serializable
ImmutableSortedSet
.The
SortedSet.headSet(E)
documentation states that a subset of a subset throws anIllegalArgumentException
if passed atoElement
greater than an earliertoElement
. However, this method doesn't throw an exception in that situation, but instead keeps the originaltoElement
. -
headSet
- Specified by:
headSet
in interfaceNavigableSet<E>
- Since:
- 12.0
-
subSet
This method returns a serializable
ImmutableSortedSet
.The
SortedSet.subSet(E, E)
documentation states that a subset of a subset throws anIllegalArgumentException
if passed afromElement
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
. -
subSet
@GwtIncompatible public ImmutableSortedSet<E> subSet(E fromElement, boolean fromInclusive, E toElement, boolean toInclusive) - Specified by:
subSet
in interfaceNavigableSet<E>
- Since:
- 12.0
-
tailSet
This method returns a serializable
ImmutableSortedSet
.The
SortedSet.tailSet(E)
documentation states that a subset of a subset throws anIllegalArgumentException
if passed afromElement
smaller than an earlierfromElement
. However, this method doesn't throw an exception in that situation, but instead keeps the originalfromElement
. -
tailSet
- Specified by:
tailSet
in interfaceNavigableSet<E>
- Since:
- 12.0
-
lower
- Specified by:
lower
in interfaceNavigableSet<E>
- Since:
- 12.0
-
floor
-
ceiling
-
higher
- Specified by:
higher
in interfaceNavigableSet<E>
- Since:
- 12.0
-
first
-
last
-
pollFirst
Deprecated.Unsupported operation.Guaranteed to throw an exception and leave the set unmodified.- Specified by:
pollFirst
in interfaceNavigableSet<E>
- Throws:
UnsupportedOperationException
- always- Since:
- 12.0
-
pollLast
Deprecated.Unsupported operation.Guaranteed to throw an exception and leave the set unmodified.- Specified by:
pollLast
in interfaceNavigableSet<E>
- Throws:
UnsupportedOperationException
- always- Since:
- 12.0
-
descendingSet
- Specified by:
descendingSet
in interfaceNavigableSet<E>
- Since:
- 12.0
-
spliterator
- Specified by:
spliterator
in interfaceCollection<E>
- Specified by:
spliterator
in interfaceIterable<E>
- Specified by:
spliterator
in interfaceSet<E>
- Specified by:
spliterator
in interfaceSortedSet<E>
- Overrides:
spliterator
in classImmutableCollection<E>
-
descendingIterator
- Specified by:
descendingIterator
in interfaceNavigableSet<E>
- Since:
- 12.0
-
toImmutableSet
Deprecated.Not supported. UsetoImmutableSortedSet(java.util.Comparator<? super E>)
instead. This method exists only to hideImmutableSet.toImmutableSet()
from consumers ofImmutableSortedSet
.- Throws:
UnsupportedOperationException
- always- Since:
- 21.0
-
builder
Deprecated.UsenaturalOrder()
, which offers better type-safety.Not supported. UsenaturalOrder()
, which offers better type-safety, instead. This method exists only to hideImmutableSet.builder()
from consumers ofImmutableSortedSet
.- Throws:
UnsupportedOperationException
- always
-
builderWithExpectedSize
@Deprecated 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:
UnsupportedOperationException
- always
-
of
Deprecated.Pass a parameter of typeComparable
to useof(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.- Throws:
UnsupportedOperationException
- always
-
of
Deprecated.Pass the parameters of typeComparable
to useof(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.- Throws:
UnsupportedOperationException
- always
-
of
Deprecated.Pass the parameters of typeComparable
to useof(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.- Throws:
UnsupportedOperationException
- always
-
of
Deprecated.Pass the parameters of typeComparable
to useof(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.- Throws:
UnsupportedOperationException
- always
-
of
Deprecated.Pass the parameters of typeComparable
to useof(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.- Throws:
UnsupportedOperationException
- always
-
of
@Deprecated 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 useof(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.- Throws:
UnsupportedOperationException
- always
-
copyOf
Deprecated.Pass parameters of typeComparable
to usecopyOf(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:
UnsupportedOperationException
- always
-
asList
Description copied from class:ImmutableCollection
Returns anImmutableList
containing the same elements, in the same order, as this collection.Performance note: in most cases this method can return quickly without actually copying anything. The exact circumstances under which the copy is performed are undefined and subject to change.
- Overrides:
asList
in classImmutableCollection<E>
-
naturalOrder()
, which offers better type-safety.