Class 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>
A Set whose contents will never change, with many other important properties detailed at ImmutableCollection.
Since:
2.0
See Also:
  • Method Details

    • of

      public static <E> ImmutableSet<E> of()
      Returns the empty immutable set. Preferred over Collections.emptySet() for code consistency, and because the return type conveys the immutability guarantee.
    • of

      public static <E> ImmutableSet<E> of(E element)
      Returns an immutable set containing element. Preferred over Collections.singleton(T) for code consistency, null rejection, and because the return type conveys the immutability guarantee.
    • 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.
    • 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.
    • 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.
    • 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.
    • 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.
      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 of 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.

      Throws:
      NullPointerException - if any of elements is 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 of 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.

      Throws:
      NullPointerException - if any of elements is null
    • copyOf

      public static <E> ImmutableSet<E> copyOf(Iterator<? extends E> elements)
      Returns an immutable set containing each of elements, minus duplicates, in the order each appears first in the source iterator.
      Throws:
      NullPointerException - if any of elements is null
    • copyOf

      public 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.
      Throws:
      NullPointerException - if any of elements is null
      Since:
      3.0
    • equals

      public boolean equals(@Nullable Object object)
      Specified by:
      equals in interface Collection<E>
      Specified by:
      equals in interface Set<E>
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Specified by:
      hashCode in interface Collection<E>
      Specified by:
      hashCode in interface Set<E>
      Overrides:
      hashCode in class Object
    • 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 interface Collection<E>
      Specified by:
      iterator in interface Iterable<E>
      Specified by:
      iterator in interface Set<E>
      Specified by:
      iterator in class ImmutableCollection<E>
    • asList

      public ImmutableList<E> asList()
      Description copied from class: ImmutableCollection
      Returns an 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.

      Overrides:
      asList in class ImmutableCollection<E>
    • builder

      public static <E> ImmutableSet.Builder<E> builder()
      Returns a new builder. The generated builder is equivalent to the builder created by the ImmutableSet.Builder constructor.