# Interface IObservableSet<E>

Type Parameters:
  `E` - the type of the elements in this set

All Superinterfaces:
  `Collection<E>, IObservable, IObservableCollection<E>, Iterable<E>, Set<E>`

All Known Subinterfaces:
  `IViewerObservableSet<E>`

All Known Implementing Classes:
  `AbstractObservableSet, ComputedSet, DecoratingObservableSet, ListToSetAdapter, MappedSet, ObservableSet, UnionSet, WritableSet`

public interface IObservableSet<E> extends Set<E>, IObservableCollection<E>
A set whose changes can be tracked by set change listeners.

Since:
  1.0
See Also:
  - `AbstractObservableSet`
  - `ObservableSet`
Restriction:
  This interface is not intended to be implemented by clients. Clients should instead subclass one of the classes that implement this interface.

  Authors of extensions to the databinding framework may extend this interface and indirectly implement it, but if doing so must also extend one of the framework classes. (Use an API problem filter to suppress the resulting warning.)

  Direct implementers of this interface outside of the framework will be broken in future releases when methods are added to this interface.

## Method Summary

Modifier and Type
Method
Description
`boolean`
`add(E o)`
`boolean`
`addAll(Collection<? extends E> c)`
`void`
`addSetChangeListener(ISetChangeListener<? super E> listener)`
`boolean`
`contains(Object o)`
`boolean`
`containsAll(Collection<?> c)`
`boolean`
`equals(Object o)`
`Object`
`getElementType()`
Returns the element type of this observable collection, or `null` if this observable collection is untyped.
`int`
`hashCode()`
`boolean`
`isEmpty()`
`Iterator<E>`
`iterator()`
`boolean`
`remove(Object o)`
`boolean`
`removeAll(Collection<?> c)`
`void`
`removeSetChangeListener(ISetChangeListener<? super E> listener)`
`boolean`
`retainAll(Collection<?> c)`
`int`
`size()`
`Object[]`
`toArray()`
`<T> T[]`
`toArray(T[] a)`

### Methods inherited from interface Collection

`parallelStream, removeIf, stream, toArray`

### Methods inherited from interface IObservable

`addChangeListener, addDisposeListener, addStaleListener, dispose, getRealm, isDisposed, isStale, removeChangeListener, removeDisposeListener, removeStaleListener`

### Methods inherited from interface Iterable

`forEach`

### Methods inherited from interface Set

`clear, spliterator`

## Method Details

### addSetChangeListener

void addSetChangeListener(ISetChangeListener<? super E> listener)

Parameters:
  `listener` - the change listener to add; not `null`

### removeSetChangeListener

void removeSetChangeListener(ISetChangeListener<? super E> listener)

Parameters:
  `listener` - the change listener to remove; not `null`

### getElementType

Object getElementType()
Description copied from interface: `IObservableCollection`
Returns the element type of this observable collection, or `null` if this observable collection is untyped.

Specified by:
  `getElementType` in interface `IObservableCollection<E>`
Returns:
  the element type or `null` if untyped

### size

int size()

Specified by:
  `size` in interface `Collection<E>`
Specified by:
  `size` in interface `Set<E>`
TrackedGetter

### isEmpty

boolean isEmpty()

Specified by:
  `isEmpty` in interface `Collection<E>`
Specified by:
  `isEmpty` in interface `Set<E>`
TrackedGetter

### contains

boolean contains(Object o)

Specified by:
  `contains` in interface `Collection<E>`
Specified by:
  `contains` in interface `Set<E>`
TrackedGetter

### iterator

Iterator<E> iterator()

Specified by:
  `iterator` in interface `Collection<E>`
Specified by:
  `iterator` in interface `Iterable<E>`
Specified by:
  `iterator` in interface `Set<E>`
TrackedGetter

### toArray

Object[] toArray()

Specified by:
  `toArray` in interface `Collection<E>`
Specified by:
  `toArray` in interface `Set<E>`
TrackedGetter

### toArray

<T> T[] toArray(T[] a)

Specified by:
  `toArray` in interface `Collection<E>`
Specified by:
  `toArray` in interface `Set<E>`
TrackedGetter

### add

boolean add(E o)

Specified by:
  `add` in interface `Collection<E>`
Specified by:
  `add` in interface `Set<E>`
TrackedGetter

### remove

boolean remove(Object o)

Specified by:
  `remove` in interface `Collection<E>`
Specified by:
  `remove` in interface `Set<E>`
TrackedGetter

### containsAll

boolean containsAll(Collection<?> c)

Specified by:
  `containsAll` in interface `Collection<E>`
Specified by:
  `containsAll` in interface `Set<E>`
TrackedGetter

### addAll

boolean addAll(Collection<? extends E> c)

Specified by:
  `addAll` in interface `Collection<E>`
Specified by:
  `addAll` in interface `Set<E>`
TrackedGetter

### retainAll

boolean retainAll(Collection<?> c)

Specified by:
  `retainAll` in interface `Collection<E>`
Specified by:
  `retainAll` in interface `Set<E>`
TrackedGetter

### removeAll

boolean removeAll(Collection<?> c)

Specified by:
  `removeAll` in interface `Collection<E>`
Specified by:
  `removeAll` in interface `Set<E>`
TrackedGetter

### equals

boolean equals(Object o)

Specified by:
  `equals` in interface `Collection<E>`
Specified by:
  `equals` in interface `Set<E>`
Overrides:
  `equals` in class `Object`
TrackedGetter

### hashCode

int hashCode()

Specified by:
  `hashCode` in interface `Collection<E>`
Specified by:
  `hashCode` in interface `Set<E>`
Overrides:
  `hashCode` in class `Object`
TrackedGetter