@GwtCompatible(serializable=true, emulated=true) public abstract class ImmutableSet<E> extends ImmutableCollection<E> implements java.util.Set<E>
Set
whose contents will never change, with many other important properties detailed at
ImmutableCollection
.Modifier and Type | Class and Description |
---|---|
static class |
ImmutableSet.Builder<E>
A builder for creating
ImmutableSet instances. |
(package private) static class |
ImmutableSet.Indexed<E> |
private static class |
ImmutableSet.SerializedForm |
ImmutableCollection.ArrayBasedBuilder<E>
Modifier and Type | Field and Description |
---|---|
private ImmutableList<E> |
asList |
private static int |
CUTOFF |
private static double |
DESIRED_LOAD_FACTOR |
(package private) static int |
MAX_TABLE_SIZE |
Constructor and Description |
---|
ImmutableSet() |
Modifier and Type | Method and Description |
---|---|
ImmutableList<E> |
asList()
Returns an
ImmutableList containing the same elements, in the same order, as this
collection. |
static <E> ImmutableSet.Builder<E> |
builder()
Returns a new builder.
|
(package private) static int |
chooseTableSize(int setSize)
Returns an array size suitable for the backing array of a hash table that
uses open addressing with linear probing in its implementation.
|
private static <E> ImmutableSet<E> |
construct(int n,
java.lang.Object... elements)
Constructs an
ImmutableSet from the first n elements of the specified array. |
static <E> ImmutableSet<E> |
copyOf(java.util.Collection<? extends E> elements)
Returns an immutable set containing each of
elements , minus duplicates, in the order
each appears first in the source collection. |
static <E> ImmutableSet<E> |
copyOf(E[] elements)
Returns an immutable set containing each of
elements , minus duplicates, in the order
each appears first in the source array. |
static <E> ImmutableSet<E> |
copyOf(java.lang.Iterable<? extends E> elements)
Returns an immutable set containing each of
elements , minus duplicates, in the order
each appears first in the source iterable. |
static <E> ImmutableSet<E> |
copyOf(java.util.Iterator<? extends E> elements)
Returns an immutable set containing each of
elements , minus duplicates, in the order
each appears first in the source iterator. |
private static ImmutableSet |
copyOfEnumSet(java.util.EnumSet enumSet) |
(package private) ImmutableList<E> |
createAsList() |
boolean |
equals(java.lang.Object object) |
int |
hashCode() |
(package private) boolean |
isHashCodeFast()
Returns
true if the hashCode() method runs quickly. |
abstract UnmodifiableIterator<E> |
iterator()
Returns an unmodifiable iterator across the elements in this collection.
|
static <E> ImmutableSet<E> |
of()
Returns the empty immutable set.
|
static <E> ImmutableSet<E> |
of(E element)
Returns an immutable set containing
element . |
static <E> ImmutableSet<E> |
of(E e1,
E e2)
Returns an immutable set containing the given elements, minus duplicates, in the order each was
first specified.
|
static <E> ImmutableSet<E> |
of(E e1,
E e2,
E e3)
Returns an immutable set containing the given elements, minus duplicates, in the order each was
first specified.
|
static <E> ImmutableSet<E> |
of(E e1,
E e2,
E e3,
E e4)
Returns an immutable set containing the given elements, minus duplicates, in the order each was
first specified.
|
static <E> ImmutableSet<E> |
of(E e1,
E e2,
E e3,
E e4,
E e5)
Returns an immutable set containing the given elements, minus duplicates, in the order each was
first specified.
|
static <E> ImmutableSet<E> |
of(E e1,
E e2,
E e3,
E e4,
E e5,
E e6,
E... others)
Returns an immutable set containing the given elements, minus duplicates, in the order each was
first specified.
|
(package private) java.lang.Object |
writeReplace() |
add, addAll, clear, contains, copyIntoArray, isPartialView, remove, removeAll, retainAll, toArray, toArray
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
static final int MAX_TABLE_SIZE
private static final double DESIRED_LOAD_FACTOR
private static final int CUTOFF
private transient ImmutableList<E> asList
public static <E> ImmutableSet<E> of()
Collections.emptySet()
for code
consistency, and because the return type conveys the immutability guarantee.public static <E> ImmutableSet<E> of(E element)
element
. Preferred over Collections.singleton(T)
for code consistency, null
rejection, and because the return
type conveys the immutability guarantee.public static <E> ImmutableSet<E> of(E e1, E e2)
public static <E> ImmutableSet<E> of(E e1, E e2, E e3)
public static <E> ImmutableSet<E> of(E e1, E e2, E e3, E e4)
public static <E> ImmutableSet<E> of(E e1, E e2, E e3, E e4, E e5)
@SafeVarargs public static <E> ImmutableSet<E> of(E e1, E e2, E e3, E e4, E e5, E e6, E... others)
private static <E> ImmutableSet<E> construct(int n, java.lang.Object... elements)
ImmutableSet
from the first n
elements of the specified array.
If k
is the size of the returned ImmutableSet
, then the unique elements of
elements
will be in the first k
positions, and elements[i] == null
for
k <= i < n
.
This may modify elements
. Additionally, if n == elements.length
and
elements
contains no duplicates, elements
may be used without copying in the
returned ImmutableSet
, in which case it may no longer be modified.
elements
may contain only values of type E
.
java.lang.NullPointerException
- if any of the first n
elements of elements
is
nullstatic int chooseTableSize(int setSize)
Do not call this method with setSize < 2.
public static <E> ImmutableSet<E> copyOf(java.util.Collection<? extends E> elements)
elements
, minus duplicates, in the order
each appears first in the source collection.
Performance note: This method will sometimes recognize that the actual copy operation
is unnecessary; for example, copyOf(copyOf(anArrayList))
will copy the data only once.
This reduces the expense of habitually making defensive copies at API boundaries. However, the
precise conditions for skipping the copy operation are undefined.
java.lang.NullPointerException
- if any of elements
is nullpublic static <E> ImmutableSet<E> copyOf(java.lang.Iterable<? extends E> elements)
elements
, minus duplicates, in the order
each appears first in the source iterable. This method iterates over elements
only
once.
Performance note: This method will sometimes recognize that the actual copy operation
is unnecessary; for example, copyOf(copyOf(anArrayList))
should copy the data only
once. This reduces the expense of habitually making defensive copies at API boundaries.
However, the precise conditions for skipping the copy operation are undefined.
java.lang.NullPointerException
- if any of elements
is nullpublic static <E> ImmutableSet<E> copyOf(java.util.Iterator<? extends E> elements)
elements
, minus duplicates, in the order
each appears first in the source iterator.java.lang.NullPointerException
- if any of elements
is nullpublic static <E> ImmutableSet<E> copyOf(E[] elements)
elements
, minus duplicates, in the order
each appears first in the source array.java.lang.NullPointerException
- if any of elements
is nullprivate static ImmutableSet copyOfEnumSet(java.util.EnumSet enumSet)
boolean isHashCodeFast()
true
if the hashCode()
method runs quickly.public boolean equals(@Nullable java.lang.Object object)
public int hashCode()
public abstract UnmodifiableIterator<E> iterator()
ImmutableCollection
public ImmutableList<E> asList()
ImmutableCollection
ImmutableList
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.
asList
in class ImmutableCollection<E>
ImmutableList<E> createAsList()
java.lang.Object writeReplace()
writeReplace
in class ImmutableCollection<E>
public static <E> ImmutableSet.Builder<E> builder()
ImmutableSet.Builder
constructor.