Module javafx.base
Package javafx.collections

## Interface ObservableSet<E>

- All Superinterfaces:
    `Collection<E>`, `Iterable<E>`, `Observable`, `Set<E>`
  All Known Subinterfaces:
    `ObservableSetValue<E>`, `WritableSetValue<E>`
  All Known Implementing Classes:
    `ReadOnlySetProperty`, `ReadOnlySetPropertyBase`, `ReadOnlySetWrapper`, `SetBinding`, `SetExpression`, `SetProperty`, `SetPropertyBase`, `SimpleSetProperty`

      public interface ObservableSet<E>
      extends Set<E>, Observable

  A set that allows observers to track changes when they occur.
  Since:
    JavaFX 2.1
  See Also:
    `SetChangeListener`, `SetChangeListener.Change`

- - ### Method Summary

    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `addListener​(SetChangeListener<? super E> listener)` | Add a listener to this observable set.
    `void` | `removeListener​(SetChangeListener<? super E> listener)` | Tries to removed a listener from this observable set.

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

      `parallelStream, removeIf, stream, toArray`

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

      `forEach`

    - ### Methods inherited from interface javafx.beans.Observable

      `addListener, removeListener`

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

      `add, addAll, clear, contains, containsAll, equals, hashCode, isEmpty, iterator, remove, removeAll, retainAll, size, spliterator, toArray, toArray`

- - ### Method Detail

    - #### addListener

          void addListener​(SetChangeListener<? super E> listener)

      Add a listener to this observable set.
      Parameters:
        `listener` - the listener for listening to the set changes

    - #### removeListener

          void removeListener​(SetChangeListener<? super E> listener)

      Tries to removed a listener from this observable set. If the listener is not attached to this list, nothing happens.
      Parameters:
        `listener` - a listener to remove