Class ImmutableSet<E>

    • Method Detail

      • toImmutableSet

        public static <E> Collector<E,​?,​ImmutableSet<E>> toImmutableSet()
        Returns a Collector that accumulates the input elements into a new ImmutableSet. Elements appear in the resulting set in the encounter order of the stream; if the stream contains duplicates (according to Object.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 over Collections.emptySet() for code consistency, and because the return type conveys the immutability guarantee.

        Performance note: the instance returned is a singleton.

      • of

        public static <E> ImmutableSet<E> of​(E e1)
        Returns an immutable set containing the given 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.

        The array others must not be longer than Integer.MAX_VALUE - 6.

        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
      • builderWithExpectedSize

        public static <E> ImmutableSet.Builder<E> builderWithExpectedSize​(int expectedSize)
        Returns a new builder, expecting the specified number of distinct elements to be added.

        If expectedSize is exactly the number of distinct elements added to the builder before ImmutableSet.Builder.build() is called, the builder is likely to perform better than an unsized builder() would have.

        It is not specified if any performance benefits apply if expectedSize is close to, but not exactly, the number of distinct elements added to the builder.

        Since:
        23.1