# Class SetUtils.SetView<E>

java.lang.Object
java.util.AbstractCollection<E>
java.util.AbstractSet<E>
org.apache.commons.collections4.SetUtils.SetView<E>

Type Parameters:
  `E` - the element type

All Implemented Interfaces:
  `Iterable<E>`, `Collection<E>`, `Set<E>`

Enclosing class:
  `SetUtils`

public abstract static class SetUtils.SetView<E> extends AbstractSet<E>
An unmodifiable view of a set that may be backed by other sets.

If the decorated sets change, this view will change as well. The contents of this view can be transferred to another instance via the `copyInto(Set)` and `toSet()` methods.

Since:
  4.1

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `SetView()`
  Constructs a new instance.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `<S extends Set<E>>
  void`
  `copyInto(S set)`
  Copies the contents of this view into the provided set.
  `protected abstract Iterator<E>`
  `createIterator()`
  Return an iterator for this view; the returned iterator is not required to be unmodifiable.
  `Iterator<E>`
  `iterator()`
  `int`
  `size()`
  `Set<E>`
  `toSet()`
  Returns a new set containing the contents of this view.

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

  `equals, hashCode, removeAll`

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

  `add, addAll, clear, contains, containsAll, isEmpty, remove, retainAll, toArray, toArray, 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`

  ### Methods inherited from interface java.lang.Iterable

  `forEach`

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

  `add, addAll, clear, contains, containsAll, isEmpty, remove, retainAll, spliterator, toArray, toArray`

- ## Constructor Details

  - ### SetView

    public SetView()
    Constructs a new instance.

- ## Method Details

  - ### copyInto

    public <S extends Set<E>> void copyInto(S set)
    Copies the contents of this view into the provided set.
    Type Parameters:
      `S` - the set type
    Parameters:
      `set` - the set for copying the contents

  - ### createIterator

    protected abstract Iterator<E> createIterator()
    Return an iterator for this view; the returned iterator is not required to be unmodifiable.
    Returns:
      a new iterator for this view

  - ### iterator

    public Iterator<E> iterator()
    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 `AbstractCollection<E>`

  - ### size

    public int size()
    Specified by:
      `size` in interface `Collection<E>`
    Specified by:
      `size` in interface `Set<E>`
    Specified by:
      `size` in class `AbstractCollection<E>`

  - ### toSet

    public Set<E> toSet()
    Returns a new set containing the contents of this view.
    Returns:
      a new set containing all elements of this view