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.ImmutableSortedSetFauxverideShim<E>
-
- com.google.common.collect.ImmutableSortedSet<E>
-
- All Implemented Interfaces:
SortedIterable<E>,java.io.Serializable,java.lang.Iterable<E>,java.util.Collection<E>,java.util.NavigableSet<E>,java.util.Set<E>,java.util.SortedSet<E>
- Direct Known Subclasses:
ContiguousSet,DescendingImmutableSortedSet,ImmutableRangeSet.AsSet,RegularImmutableSortedSet
public abstract class ImmutableSortedSet<E> extends ImmutableSortedSetFauxverideShim<E> implements java.util.NavigableSet<E>, SortedIterable<E>
ANavigableSetwhose 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
ComparatororComparabletype 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
NavigableSetsince 12.0) - See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classImmutableSortedSet.Builder<E>A builder for creating immutable sorted set instances, especiallypublic static finalsets ("constant sets"), with a given comparator.private static classImmutableSortedSet.SerializedForm<E>-
Nested classes/interfaces inherited from class com.google.common.collect.ImmutableSet
ImmutableSet.Indexed<E>
-
-
Field Summary
Fields Modifier and Type Field Description (package private) java.util.Comparator<? super E>comparator(package private) ImmutableSortedSet<E>descendingSet(package private) static intSPLITERATOR_CHARACTERISTICS-
Fields inherited from class com.google.common.collect.ImmutableSet
HASH_FLOODING_FPP, MAX_RUN_MULTIPLIER, MAX_TABLE_SIZE
-
-
Constructor Summary
Constructors Constructor Description ImmutableSortedSet(java.util.Comparator<? super E> comparator)
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Deprecated Methods Modifier and Type Method Description Eceiling(E e)java.util.Comparator<? super E>comparator()Returns the comparator that orders the elements, which isOrdering.natural()when the natural ordering of the elements is used.(package private) static <E> ImmutableSortedSet<E>construct(java.util.Comparator<? super E> comparator, int n, E... contents)Constructs anImmutableSortedSetfrom the firstnelements ofcontents.static <E extends java.lang.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(java.lang.Iterable<? extends E> elements)Returns an immutable sorted set containing the given elements sorted by their natural ordering.static <E> ImmutableSortedSet<E>copyOf(java.util.Collection<? extends E> elements)Returns an immutable sorted set containing the given elements sorted by their natural ordering.static <E> ImmutableSortedSet<E>copyOf(java.util.Comparator<? super E> comparator, java.lang.Iterable<? extends E> elements)Returns an immutable sorted set containing the given elements sorted by the givenComparator.static <E> ImmutableSortedSet<E>copyOf(java.util.Comparator<? super E> comparator, java.util.Collection<? extends E> elements)Returns an immutable sorted set containing the given elements sorted by the givenComparator.static <E> ImmutableSortedSet<E>copyOf(java.util.Comparator<? super E> comparator, java.util.Iterator<? extends E> elements)Returns an immutable sorted set containing the given elements sorted by the givenComparator.static <E> ImmutableSortedSet<E>copyOf(java.util.Iterator<? extends E> elements)Returns an immutable sorted set containing the given elements sorted by their natural ordering.static <E> ImmutableSortedSet<E>copyOfSorted(java.util.SortedSet<E> sortedSet)Returns an immutable sorted set containing the elements of a sorted set, sorted by the sameComparator.(package private) abstract ImmutableSortedSet<E>createDescendingSet()abstract UnmodifiableIterator<E>descendingIterator()ImmutableSortedSet<E>descendingSet()(package private) static <E> RegularImmutableSortedSet<E>emptySet(java.util.Comparator<? super E> comparator)Efirst()Efloor(E e)ImmutableSortedSet<E>headSet(E toElement)ImmutableSortedSet<E>headSet(E toElement, boolean inclusive)(package private) abstract ImmutableSortedSet<E>headSetImpl(E toElement, boolean inclusive)Ehigher(E e)(package private) abstract intindexOf(java.lang.Object target)Returns the position of an element within the set, or -1 if not present.abstract UnmodifiableIterator<E>iterator()Returns an unmodifiable iterator across the elements in this collection.Elast()Elower(E e)static <E extends java.lang.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 java.lang.Comparable<? super E>>
ImmutableSortedSet<E>of(E element)Returns an immutable sorted set containing a single element.static <E extends java.lang.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 java.lang.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 java.lang.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 java.lang.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 java.lang.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(java.util.Comparator<E> comparator)Returns a builder that creates immutable sorted sets with an explicit comparator.EpollFirst()Deprecated.Unsupported operation.EpollLast()Deprecated.Unsupported operation.private voidreadObject(java.io.ObjectInputStream unused)static <E extends java.lang.Comparable<?>>
ImmutableSortedSet.Builder<E>reverseOrder()Returns a builder that creates immutable sorted sets whose elements are ordered by the reverse of their natural ordering.java.util.Spliterator<E>spliterator()ImmutableSortedSet<E>subSet(E fromElement, boolean fromInclusive, E toElement, boolean toInclusive)ImmutableSortedSet<E>subSet(E fromElement, E toElement)(package private) abstract ImmutableSortedSet<E>subSetImpl(E fromElement, boolean fromInclusive, E toElement, boolean toInclusive)ImmutableSortedSet<E>tailSet(E fromElement)ImmutableSortedSet<E>tailSet(E fromElement, boolean inclusive)(package private) abstract ImmutableSortedSet<E>tailSetImpl(E fromElement, boolean inclusive)static <E> java.util.stream.Collector<E,?,ImmutableSortedSet<E>>toImmutableSortedSet(java.util.Comparator<? super E> comparator)Returns aCollectorthat accumulates the input elements into a newImmutableSortedSet, ordered by the specified comparator.(package private) intunsafeCompare(java.lang.Object a, java.lang.Object b)(package private) static intunsafeCompare(java.util.Comparator<?> comparator, java.lang.Object a, java.lang.Object b)(package private) java.lang.ObjectwriteReplace()-
Methods inherited from class com.google.common.collect.ImmutableSortedSetFauxverideShim
builder, builderWithExpectedSize, copyOf, of, of, of, of, of, of, toImmutableSet
-
Methods inherited from class com.google.common.collect.ImmutableSet
asList, chooseTableSize, createAsList, equals, hashCode, hashFloodingDetected, isHashCodeFast, rebuildHashTable
-
Methods inherited from class com.google.common.collect.ImmutableCollection
add, addAll, clear, contains, copyIntoArray, internalArray, internalArrayEnd, internalArrayStart, isPartialView, remove, removeAll, removeIf, retainAll, toArray, toArray
-
-
-
-
Field Detail
-
SPLITERATOR_CHARACTERISTICS
static final int SPLITERATOR_CHARACTERISTICS
- See Also:
- Constant Field Values
-
comparator
final transient java.util.Comparator<? super E> comparator
-
descendingSet
transient ImmutableSortedSet<E> descendingSet
-
-
Constructor Detail
-
ImmutableSortedSet
ImmutableSortedSet(java.util.Comparator<? super E> comparator)
-
-
Method Detail
-
toImmutableSortedSet
public static <E> java.util.stream.Collector<E,?,ImmutableSortedSet<E>> toImmutableSortedSet(java.util.Comparator<? super E> comparator)
Returns aCollectorthat 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
-
emptySet
static <E> RegularImmutableSortedSet<E> emptySet(java.util.Comparator<? super E> comparator)
-
of
public static <E> ImmutableSortedSet<E> of()
Returns the empty immutable sorted set.
-
of
public static <E extends java.lang.Comparable<? super E>> ImmutableSortedSet<E> of(E element)
Returns an immutable sorted set containing a single element.
-
of
public static <E extends java.lang.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:
java.lang.NullPointerException- if any element is null
-
of
public static <E extends java.lang.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:
java.lang.NullPointerException- if any element is null
-
of
public static <E extends java.lang.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:
java.lang.NullPointerException- if any element is null
-
of
public static <E extends java.lang.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:
java.lang.NullPointerException- if any element is null
-
of
public static <E extends java.lang.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:
java.lang.NullPointerException- if any element is null- Since:
- 3.0 (source-compatible since 2.0)
-
copyOf
public static <E extends java.lang.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:
java.lang.NullPointerException- if any ofelementsis null- Since:
- 3.0
-
copyOf
public static <E> ImmutableSortedSet<E> copyOf(java.lang.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 aSortedSetthat preserves the comparator, callcopyOfSorted(java.util.SortedSet<E>)instead. This method iterates overelementsat most once.Note that if
sis 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:
java.lang.ClassCastException- if the elements are not mutually comparablejava.lang.NullPointerException- if any ofelementsis null
-
copyOf
public static <E> ImmutableSortedSet<E> copyOf(java.util.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 aSortedSetthat preserves the comparator, callcopyOfSorted(java.util.SortedSet<E>)instead. This method iterates overelementsat most once.Note that if
sis 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
elementsis 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
elementsis a synchronized or concurrent collection that is currently being modified by another thread.- Throws:
java.lang.ClassCastException- if the elements are not mutually comparablejava.lang.NullPointerException- if any ofelementsis null- Since:
- 7.0 (source-compatible since 2.0)
-
copyOf
public static <E> ImmutableSortedSet<E> copyOf(java.util.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:
java.lang.ClassCastException- if the elements are not mutually comparablejava.lang.NullPointerException- if any ofelementsis null
-
copyOf
public static <E> ImmutableSortedSet<E> copyOf(java.util.Comparator<? super E> comparator, java.util.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:
java.lang.NullPointerException- ifcomparatoror any ofelementsis null
-
copyOf
public static <E> ImmutableSortedSet<E> copyOf(java.util.Comparator<? super E> comparator, java.lang.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 overelementsat 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:
java.lang.NullPointerException- ifcomparatoror any ofelementsis null
-
copyOf
public static <E> ImmutableSortedSet<E> copyOf(java.util.Comparator<? super E> comparator, java.util.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
elementsis a synchronized or concurrent collection that is currently being modified by another thread.- Throws:
java.lang.NullPointerException- ifcomparatoror any ofelementsis null- Since:
- 7.0 (source-compatible since 2.0)
-
copyOfSorted
public static <E> ImmutableSortedSet<E> copyOfSorted(java.util.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
sortedSetis a synchronized or concurrent collection that is currently being modified by another thread.- Throws:
java.lang.NullPointerException- ifsortedSetor any of its elements is null
-
construct
static <E> ImmutableSortedSet<E> construct(java.util.Comparator<? super E> comparator, int n, E... contents)
Constructs anImmutableSortedSetfrom the firstnelements ofcontents. Ifkis the size of the returnedImmutableSortedSet, then the sorted unique elements are in the firstkpositions ofcontents, andcontents[i] == nullfork <= i < n.If
k == contents.length, thencontentsmay no longer be safe for modification.- Throws:
java.lang.NullPointerException- if any of the firstnelements ofcontentsis null
-
orderedBy
public static <E> ImmutableSortedSet.Builder<E> orderedBy(java.util.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.Builderconstructor instead.- Throws:
java.lang.NullPointerException- ifcomparatoris null
-
reverseOrder
public static <E extends java.lang.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 java.lang.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 thanImmutableSortedSetFauxverideShim.builder(), as it can be called only for classes that implementComparable.
-
unsafeCompare
int unsafeCompare(java.lang.Object a, java.lang.Object b)
-
unsafeCompare
static int unsafeCompare(java.util.Comparator<?> comparator, java.lang.Object a, java.lang.Object b)
-
comparator
public java.util.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 returnsnullto indicate natural ordering.- Specified by:
comparatorin interfaceSortedIterable<E>- Specified by:
comparatorin interfacejava.util.SortedSet<E>
-
iterator
public abstract UnmodifiableIterator<E> iterator()
Description copied from class:ImmutableCollectionReturns an unmodifiable iterator across the elements in this collection.- Specified by:
iteratorin interfacejava.util.Collection<E>- Specified by:
iteratorin interfacejava.lang.Iterable<E>- Specified by:
iteratorin interfacejava.util.NavigableSet<E>- Specified by:
iteratorin interfacejava.util.Set<E>- Specified by:
iteratorin interfaceSortedIterable<E>- Specified by:
iteratorin 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 anIllegalArgumentExceptionif passed atoElementgreater 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:
headSetin interfacejava.util.NavigableSet<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 anIllegalArgumentExceptionif passed afromElementsmaller 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 atoElementgreater than an earliertoElement.
-
subSet
public ImmutableSortedSet<E> subSet(E fromElement, boolean fromInclusive, E toElement, boolean toInclusive)
- Specified by:
subSetin interfacejava.util.NavigableSet<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 anIllegalArgumentExceptionif passed afromElementsmaller 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:
tailSetin interfacejava.util.NavigableSet<E>- Since:
- 12.0
-
headSetImpl
abstract ImmutableSortedSet<E> headSetImpl(E toElement, boolean inclusive)
-
subSetImpl
abstract ImmutableSortedSet<E> subSetImpl(E fromElement, boolean fromInclusive, E toElement, boolean toInclusive)
-
tailSetImpl
abstract ImmutableSortedSet<E> tailSetImpl(E fromElement, boolean inclusive)
-
ceiling
public E ceiling(E e)
- Specified by:
ceilingin interfacejava.util.NavigableSet<E>- Since:
- 12.0
-
higher
public E higher(E e)
- Specified by:
higherin interfacejava.util.NavigableSet<E>- Since:
- 12.0
-
pollFirst
@Deprecated public final E pollFirst()
Deprecated.Unsupported operation.Guaranteed to throw an exception and leave the set unmodified.- Specified by:
pollFirstin interfacejava.util.NavigableSet<E>- Throws:
java.lang.UnsupportedOperationException- always- Since:
- 12.0
-
pollLast
@Deprecated public final E pollLast()
Deprecated.Unsupported operation.Guaranteed to throw an exception and leave the set unmodified.- Specified by:
pollLastin interfacejava.util.NavigableSet<E>- Throws:
java.lang.UnsupportedOperationException- always- Since:
- 12.0
-
descendingSet
public ImmutableSortedSet<E> descendingSet()
- Specified by:
descendingSetin interfacejava.util.NavigableSet<E>- Since:
- 12.0
-
createDescendingSet
abstract ImmutableSortedSet<E> createDescendingSet()
-
spliterator
public java.util.Spliterator<E> spliterator()
- Specified by:
spliteratorin interfacejava.util.Collection<E>- Specified by:
spliteratorin interfacejava.lang.Iterable<E>- Specified by:
spliteratorin interfacejava.util.Set<E>- Specified by:
spliteratorin interfacejava.util.SortedSet<E>- Overrides:
spliteratorin classImmutableCollection<E>
-
descendingIterator
public abstract UnmodifiableIterator<E> descendingIterator()
- Specified by:
descendingIteratorin interfacejava.util.NavigableSet<E>- Since:
- 12.0
-
indexOf
abstract int indexOf(java.lang.Object target)
Returns the position of an element within the set, or -1 if not present.
-
readObject
private void readObject(java.io.ObjectInputStream unused) throws java.io.InvalidObjectException- Throws:
java.io.InvalidObjectException
-
writeReplace
java.lang.Object writeReplace()
- Overrides:
writeReplacein classImmutableSet<E>
-
-