Class ImmutableSet<E>
- java.lang.Object
-
- java.util.AbstractCollection<E>
-
- com.google.common.collect.ImmutableCollection<E>
-
- com.google.common.collect.ImmutableSet<E>
-
- All Implemented Interfaces:
Serializable,Iterable<E>,Collection<E>,Set<E>
- Direct Known Subclasses:
ImmutableSortedSet
@GwtCompatible(serializable=true, emulated=true) public abstract class ImmutableSet<E> extends ImmutableCollection<E> implements Set<E>
ASetwhose contents will never change, with many other important properties detailed atImmutableCollection.- Since:
- 2.0
- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classImmutableSet.Builder<E>A builder for creatingImmutableSetinstances.
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description ImmutableList<E>asList()Returns anImmutableListcontaining the same elements, in the same order, as this collection.static <E> ImmutableSet.Builder<E>builder()Returns a new builder.static <E> ImmutableSet.Builder<E>builderWithExpectedSize(int expectedSize)Returns a new builder, expecting the specified number of distinct elements to be added.static <E> ImmutableSet<E>copyOf(E[] elements)Returns an immutable set containing each ofelements, minus duplicates, in the order each appears first in the source array.static <E> ImmutableSet<E>copyOf(Iterable<? extends E> elements)Returns an immutable set containing each ofelements, minus duplicates, in the order each appears first in the source iterable.static <E> ImmutableSet<E>copyOf(Collection<? extends E> elements)Returns an immutable set containing each ofelements, minus duplicates, in the order each appears first in the source collection.static <E> ImmutableSet<E>copyOf(Iterator<? extends E> elements)Returns an immutable set containing each ofelements, minus duplicates, in the order each appears first in the source iterator.booleanequals(@Nullable Object object)Indicates whether some other object is "equal to" this one.inthashCode()Returns a hash code value for the object.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 containingelement.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.static <E> Collector<E,?,ImmutableSet<E>>toImmutableSet()Returns aCollectorthat accumulates the input elements into a newImmutableSet.-
Methods inherited from class com.google.common.collect.ImmutableCollection
add, addAll, clear, contains, remove, removeAll, removeIf, retainAll, spliterator, 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
-
toImmutableSet
public static <E> Collector<E,?,ImmutableSet<E>> toImmutableSet()
Returns aCollectorthat accumulates the input elements into a newImmutableSet. Elements appear in the resulting set in the encounter order of the stream; if the stream contains duplicates (according toObject.equals(Object)), only the first duplicate in encounter order will appear in the result.- Since:
- 21.0
-
of
public static <E> ImmutableSet<E> of()
Returns the empty immutable set. Preferred overCollections.emptySet()for code consistency, and because the return type conveys the immutability guarantee.- Type Parameters:
E- theSet's element type- Returns:
- an empty
Set
-
of
public static <E> ImmutableSet<E> of(E element)
Returns an immutable set containingelement. Preferred overCollections.singleton(T)for code consistency,nullrejection, and because the return type conveys the immutability guarantee.- Type Parameters:
E- theSet's element type- Parameters:
element- the single element- Returns:
- a
Setcontaining the specified element
-
of
public 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. That is, if multiple elements are equal, all except the first are ignored.- Type Parameters:
E- theSet's element type- Parameters:
e1- the first elemente2- the second element- Returns:
- a
Setcontaining the specified elements
-
of
public 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. That is, if multiple elements are equal, all except the first are ignored.- Type Parameters:
E- theSet's element type- Parameters:
e1- the first elemente2- the second elemente3- the third element- Returns:
- a
Setcontaining the specified elements
-
of
public 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. That is, if multiple elements are equal, all except the first are ignored.- Type Parameters:
E- theSet's element type- Parameters:
e1- the first elemente2- the second elemente3- the third elemente4- the fourth element- Returns:
- a
Setcontaining the specified elements
-
of
public 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. That is, if multiple elements are equal, all except the first are ignored.- 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
Setcontaining the specified elements
-
of
@SafeVarargs public 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. That is, if multiple elements are equal, all except the first are ignored.The array
othersmust not be longer thanInteger.MAX_VALUE - 6.- 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 elementothers- the seventh element- Returns:
- a
Setcontaining the specified elements - Since:
- 3.0 (source-compatible since 2.0)
-
copyOf
public static <E> ImmutableSet<E> copyOf(Collection<? extends E> elements)
Returns an immutable set containing each ofelements, 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.- Type Parameters:
E- theSet's element type- Parameters:
elements- aCollectionfrom which elements are drawn, must be non-null- Returns:
- a
Setcontaining the elements of the givenCollection - Throws:
NullPointerException- if any ofelementsis null- Since:
- 7.0 (source-compatible since 2.0)
-
copyOf
public static <E> ImmutableSet<E> copyOf(Iterable<? extends E> elements)
Returns an immutable set containing each ofelements, minus duplicates, in the order each appears first in the source iterable. This method iterates overelementsonly 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.- Throws:
NullPointerException- if any ofelementsis null
-
copyOf
public static <E> ImmutableSet<E> copyOf(Iterator<? extends E> elements)
Returns an immutable set containing each ofelements, minus duplicates, in the order each appears first in the source iterator.- Throws:
NullPointerException- if any ofelementsis null
-
copyOf
public static <E> ImmutableSet<E> copyOf(E[] elements)
Returns an immutable set containing each ofelements, minus duplicates, in the order each appears first in the source array.- Throws:
NullPointerException- if any ofelementsis null- Since:
- 3.0
-
equals
public boolean equals(@Nullable Object object)
Description copied from class:java.lang.ObjectIndicates whether some other object is "equal to" this one.The
equalsmethod implements an equivalence relation on non-null object references:- It is reflexive: for any non-null reference value
x,x.equals(x)should returntrue. - It is symmetric: for any non-null reference values
xandy,x.equals(y)should returntrueif and only ify.equals(x)returnstrue. - It is transitive: for any non-null reference values
x,y, andz, ifx.equals(y)returnstrueandy.equals(z)returnstrue, thenx.equals(z)should returntrue. - It is consistent: for any non-null reference values
xandy, multiple invocations ofx.equals(y)consistently returntrueor consistently returnfalse, provided no information used inequalscomparisons on the objects is modified. - For any non-null reference value
x,x.equals(null)should returnfalse.
The
equalsmethod for classObjectimplements the most discriminating possible equivalence relation on objects; that is, for any non-null reference valuesxandy, this method returnstrueif and only ifxandyrefer to the same object (x == yhas the valuetrue).Note that it is generally necessary to override the
hashCodemethod whenever this method is overridden, so as to maintain the general contract for thehashCodemethod, which states that equal objects must have equal hash codes.- Specified by:
equalsin interfaceCollection<E>- Specified by:
equalsin interfaceSet<E>- Overrides:
equalsin classObject- Parameters:
object- the reference object with which to compare.- Returns:
trueif this object is the same as the obj argument;falseotherwise.- See Also:
Object.hashCode(),HashMap
- It is reflexive: for any non-null reference value
-
hashCode
public int hashCode()
Description copied from class:java.lang.ObjectReturns a hash code value for the object. This method is supported for the benefit of hash tables such as those provided byHashMap.The general contract of
hashCodeis:- Whenever it is invoked on the same object more than once during
an execution of a Java application, the
hashCodemethod must consistently return the same integer, provided no information used inequalscomparisons on the object is modified. This integer need not remain consistent from one execution of an application to another execution of the same application. - If two objects are equal according to the
equals(Object)method, then calling thehashCodemethod on each of the two objects must produce the same integer result. - It is not required that if two objects are unequal
according to the
Object.equals(java.lang.Object)method, then calling thehashCodemethod on each of the two objects must produce distinct integer results. However, the programmer should be aware that producing distinct integer results for unequal objects may improve the performance of hash tables.
As much as is reasonably practical, the hashCode method defined by class
Objectdoes return distinct integers for distinct objects. (The hashCode may or may not be implemented as some function of an object's memory address at some point in time.)- Specified by:
hashCodein interfaceCollection<E>- Specified by:
hashCodein interfaceSet<E>- Overrides:
hashCodein classObject- Returns:
- a hash code value for this object.
- See Also:
Object.equals(java.lang.Object),System.identityHashCode(java.lang.Object)
- Whenever it is invoked on the same object more than once during
an execution of a Java application, the
-
iterator
public abstract UnmodifiableIterator<E> iterator()
Description copied from class:ImmutableCollectionReturns an unmodifiable iterator across the elements in this collection.
-
asList
public ImmutableList<E> asList()
Description copied from class:ImmutableCollectionReturns anImmutableListcontaining 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:
asListin classImmutableCollection<E>
-
builder
public static <E> ImmutableSet.Builder<E> builder()
Returns a new builder. The generated builder is equivalent to the builder created by theImmutableSet.Builderconstructor.
-
builderWithExpectedSize
@Beta public static <E> ImmutableSet.Builder<E> builderWithExpectedSize(int expectedSize)
Returns a new builder, expecting the specified number of distinct elements to be added.If
expectedSizeis exactly the number of distinct elements added to the builder beforeImmutableSet.Builder.build()is called, the builder is likely to perform better than an unsizedbuilder()would have.It is not specified if any performance benefits apply if
expectedSizeis close to, but not exactly, the number of distinct elements added to the builder.- Since:
- 23.1
-
-