com.google.common.collect

## Class Sets.SetView<E>

- java.lang.Object
- - java.util.AbstractCollection<E>
  - - java.util.AbstractSet<E>
    - - com.google.common.collect.Sets.SetView<E>

- All Implemented Interfaces:
    java.lang.Iterable<E>, java.util.Collection<E>, java.util.Set<E>
  Enclosing class:
    Sets

      public abstract static class Sets.SetView<E>
      extends java.util.AbstractSet<E>

  An unmodifiable view of a set which may be backed by other sets; this view will change as the backing sets do. Contains methods to copy the data into a new set which will then remain stable. There is usually no reason to retain a reference of type `SetView`; typically, you either use it as a plain `Set`, or immediately invoke `immutableCopy()` or `copyInto(S)` and forget the `SetView` itself.
  Since:
    2.0

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `<S extends java.util.Set<E>> S` | `copyInto(S set)` Copies the current contents of this set view into an existing set.
    `ImmutableSet<E>` | `immutableCopy()` Returns an immutable copy of the current contents of this set view.

    - ### Methods inherited from class java.util.AbstractSet

      `equals, hashCode, removeAll`

    - ### Methods inherited from class java.util.AbstractCollection

      `add, addAll, clear, contains, containsAll, isEmpty, iterator, remove, retainAll, size, toArray, toArray, toString`

    - ### Methods inherited from class java.lang.Object

      `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

    - ### Methods inherited from interface java.util.Set

      `add, addAll, clear, contains, containsAll, isEmpty, iterator, remove, retainAll, size, toArray, toArray`

- - ### Method Detail

    - #### immutableCopy

          public ImmutableSet<E> immutableCopy()

      Returns an immutable copy of the current contents of this set view. Does not support null elements.

      Warning: this may have unexpected results if a backing set of this view uses a nonstandard notion of equivalence, for example if it is a `TreeSet` using a comparator that is inconsistent with `Object.equals(Object)`.

    - #### copyInto

          public <S extends java.util.Set<E>> S copyInto(S set)

      Copies the current contents of this set view into an existing set. This method has equivalent behavior to `set.addAll(this)`, assuming that all the sets involved are based on the same notion of equivalence.
      Returns:
        a reference to `set`, for convenience