Class ImmutableSortedSet<E>
- java.lang.Object
-
- java.util.AbstractCollection<E>
-
- com.google.common.collect.ImmutableCollection<E>
-
- com.google.common.collect.ImmutableSet<E>
-
- com.google.common.collect.ImmutableSortedSet<E>
-
- All Implemented Interfaces:
Serializable
,Iterable<E>
,Collection<E>
,NavigableSet<E>
,Set<E>
,SortedSet<E>
- Direct Known Subclasses:
ContiguousSet
@GwtCompatible(serializable=true, emulated=true) public abstract class ImmutableSortedSet<E> extends ImmutableSet<E> implements NavigableSet<E>
ANavigableSet
whose contents will never change, with many other important properties detailed atImmutableCollection
.Warning: as with any sorted collection, you are strongly advised not to use a
Comparator
orComparable
type whose comparison behavior is inconsistent with equals. That is,a.compareTo(b)
orcomparator.compare(a, b)
should equal zero if and only ifa.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:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
ImmutableSortedSet.Builder<E>
A builder for creating immutable sorted set instances, especiallypublic static final
sets ("constant sets"), with a given comparator.
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Deprecated Methods Modifier and Type Method Description ImmutableList<E>
asList()
Returns anImmutableList
containing the same elements, in the same order, as this collection.static <E> ImmutableSortedSet.Builder<E>
builder()
Deprecated.UsenaturalOrder()
, which offers better type-safety.static <E> ImmutableSortedSet.Builder<E>
builderWithExpectedSize(int expectedSize)
Deprecated.Not supported by ImmutableSortedSet.@Nullable E
ceiling(E e)
Comparator<? super E>
comparator()
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>
copyOf(Iterable<? extends E> elements)
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>
copyOf(Iterator<? extends E> elements)
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>
descendingIterator()
ImmutableSortedSet<E>
descendingSet()
E
first()
@Nullable E
floor(E e)
ImmutableSortedSet<E>
headSet(E toElement)
ImmutableSortedSet<E>
headSet(E toElement, boolean inclusive)
@Nullable E
higher(E e)
abstract UnmodifiableIterator<E>
iterator()
Returns an unmodifiable iterator across the elements in this collection.E
last()
@Nullable E
lower(E e)
static <E extends Comparable<?>>
ImmutableSortedSet.Builder<E>naturalOrder()
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 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 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 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 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 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.Builder<E>
orderedBy(Comparator<E> comparator)
Returns a builder that creates immutable sorted sets with an explicit comparator.@Nullable E
pollFirst()
Deprecated.Unsupported operation.@Nullable E
pollLast()
Deprecated.Unsupported operation.static <E extends Comparable<?>>
ImmutableSortedSet.Builder<E>reverseOrder()
Returns a builder that creates immutable sorted sets whose elements are ordered by the reverse of their natural ordering.Spliterator<E>
spliterator()
ImmutableSortedSet<E>
subSet(E fromElement, boolean fromInclusive, E toElement, boolean toInclusive)
ImmutableSortedSet<E>
subSet(E fromElement, E toElement)
ImmutableSortedSet<E>
tailSet(E fromElement)
ImmutableSortedSet<E>
tailSet(E fromElement, boolean inclusive)
static <E> Collector<E,?,ImmutableSet<E>>
toImmutableSet()
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
-
-
-
-
Method Detail
-
toImmutableSortedSet
public 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.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
public static <E> ImmutableSortedSet<E> of()
Returns the empty immutable sorted set.Performance note: the instance returned is a singleton.
-
of
public static <E extends Comparable<? super E>> ImmutableSortedSet<E> of(E e1)
Returns an immutable sorted set containing a single element.
-
of
public 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. 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)
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)
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
public 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. 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
public static <E> ImmutableSortedSet<E> copyOf(Iterable<? extends E> elements)
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
public static <E> ImmutableSortedSet<E> copyOf(Collection<? extends E> elements)
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
public static <E> ImmutableSortedSet<E> copyOf(Iterator<? extends E> elements)
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
public static <E> ImmutableSortedSet<E> copyOfSorted(SortedSet<E> sortedSet)
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
public static <E> ImmutableSortedSet.Builder<E> orderedBy(Comparator<E> comparator)
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
public static <E extends Comparable<?>> ImmutableSortedSet.Builder<E> reverseOrder()
Returns a builder that creates immutable sorted sets whose elements are ordered by the reverse of their natural ordering.
-
naturalOrder
public static <E extends Comparable<?>> ImmutableSortedSet.Builder<E> 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
public Comparator<? super E> 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
public abstract UnmodifiableIterator<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
public ImmutableSortedSet<E> headSet(E toElement)
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
public ImmutableSortedSet<E> headSet(E toElement, boolean inclusive)
- Specified by:
headSet
in interfaceNavigableSet<E>
- Since:
- 12.0
-
subSet
public ImmutableSortedSet<E> subSet(E fromElement, E toElement)
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
public ImmutableSortedSet<E> tailSet(E fromElement)
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
public ImmutableSortedSet<E> tailSet(E fromElement, boolean inclusive)
- Specified by:
tailSet
in interfaceNavigableSet<E>
- Since:
- 12.0
-
lower
@GwtIncompatible public @Nullable E lower(E e)
- Specified by:
lower
in interfaceNavigableSet<E>
- Since:
- 12.0
-
ceiling
public @Nullable E ceiling(E e)
- Specified by:
ceiling
in interfaceNavigableSet<E>
- Since:
- 12.0
-
higher
@GwtIncompatible public @Nullable E higher(E e)
- Specified by:
higher
in interfaceNavigableSet<E>
- Since:
- 12.0
-
pollFirst
@CanIgnoreReturnValue @Deprecated @GwtIncompatible public final @Nullable E 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
@CanIgnoreReturnValue @Deprecated @GwtIncompatible public final @Nullable E 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
@GwtIncompatible public ImmutableSortedSet<E> descendingSet()
- Specified by:
descendingSet
in interfaceNavigableSet<E>
- Since:
- 12.0
-
spliterator
public Spliterator<E> 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
@GwtIncompatible public abstract UnmodifiableIterator<E> descendingIterator()
- Specified by:
descendingIterator
in interfaceNavigableSet<E>
- Since:
- 12.0
-
toImmutableSet
@Deprecated public static <E> Collector<E,?,ImmutableSet<E>> 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 public static <E> ImmutableSortedSet.Builder<E> 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 public static <E> ImmutableSortedSet<E> of(E e1)
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 public static <E> ImmutableSortedSet<E> of(E e1, E e2)
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 public static <E> ImmutableSortedSet<E> of(E e1, E e2, E e3)
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 public 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)
.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)
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 public static <Z> ImmutableSortedSet<Z> copyOf(Z[] elements)
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
public ImmutableList<E> 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>
-
-