ObservableList (JavaFX 25)
Description: declaration: module: javafx.base, package: javafx.collections, interface: ObservableList

# Interface ObservableList<E>

Type Parameters:
  `E` - the list element type

All Superinterfaces:
  `Collection<E>, Iterable<E>, List<E>, Observable, SequencedCollection<E>`

All Known Subinterfaces:
  `ObservableListValue<E>, WritableListValue<E>`

All Known Implementing Classes:
  `FilteredList, ListBinding, ListExpression, ListProperty, ListPropertyBase, ModifiableObservableListBase, ObservableListBase, ReadOnlyListProperty, ReadOnlyListPropertyBase, ReadOnlyListWrapper, SimpleListProperty, SortedList, TransformationList`

public interface ObservableList<E> extends List<E>, Observable
A list that allows listeners to track changes when they occur. Implementations can be created using methods in `FXCollections` such as `observableArrayList`, or with a `SimpleListProperty`.

Since:
  JavaFX 2.0
See Also:
  - `ListChangeListener`
  - `ListChangeListener.Change`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `boolean`
  `addAll(E... elements)`
  A convenience method for var-arg addition of elements.
  `void`
  `addListener(ListChangeListener<? super E> listener)`
  Add a listener to this observable list.
  `default FilteredList<E>`
  `filtered(Predicate<E> predicate)`
  Creates a `FilteredList` wrapper of this list using the specified predicate.
  `void`
  `remove(int from, int to)`
  A simplified way of calling `sublist(from, to).clear()`.
  `boolean`
  `removeAll(E... elements)`
  A convenience method for var-arg usage of the `removeAll` method.
  `void`
  `removeListener(ListChangeListener<? super E> listener)`
  Tries to remove a listener from this observable list.
  `boolean`
  `retainAll(E... elements)`
  A convenience method for var-arg usage of the `retainAll` method.
  `boolean`
  `setAll(E... elements)`
  Clears the ObservableList and adds all the elements passed as var-args.
  `boolean`
  `setAll(Collection<? extends E> col)`
  Clears the ObservableList and adds all elements from the collection.
  `default SortedList<E>`
  `sorted()`
  Creates a `SortedList` wrapper of this list with the natural ordering.
  `default SortedList<E>`
  `sorted(Comparator<E> comparator)`
  Creates a `SortedList` wrapper of this list using the specified comparator.

  ### Methods declared in interface Collection

  `parallelStream, removeIf, stream, toArray`

  ### Methods declared in interface Iterable

  `forEach`

  ### Methods declared in interface List

  `add, add, addAll, addAll, addFirst, addLast, clear, contains, containsAll, equals, get, getFirst, getLast, hashCode, indexOf, isEmpty, iterator, lastIndexOf, listIterator, listIterator, remove, remove, removeAll, removeFirst, removeLast, replaceAll, retainAll, reversed, set, size, sort, spliterator, subList, toArray, toArray`

  ### Methods declared in interface Observable

  `addListener, removeListener, subscribe`

- ## Method Details

  - ### addListener

    void addListener(ListChangeListener<? super E> listener)
    Add a listener to this observable list.
    Parameters:
      `listener` - the listener for listening to the list changes

  - ### removeListener

    void removeListener(ListChangeListener<? super E> listener)
    Tries to remove a listener from this observable list. If the listener is not attached to this list, nothing happens.
    Parameters:
      `listener` - a listener to remove

  - ### addAll

    boolean addAll(E... elements)
    A convenience method for var-arg addition of elements.
    Parameters:
      `elements` - the elements to add
    Returns:
      true (as specified by Collection.add(E))

  - ### setAll

    boolean setAll(E... elements)
    Clears the ObservableList and adds all the elements passed as var-args.
    Parameters:
      `elements` - the elements to set
    Returns:
      true (as specified by Collection.add(E))
    Throws:
      `NullPointerException` - if the specified arguments contain one or more null elements

  - ### setAll

    boolean setAll(Collection<? extends E> col)
    Clears the ObservableList and adds all elements from the collection.
    Parameters:
      `col` - the collection with elements that will be added to this observableArrayList
    Returns:
      true (as specified by Collection.add(E))
    Throws:
      `NullPointerException` - if the specified collection contains one or more null elements

  - ### removeAll

    boolean removeAll(E... elements)
    A convenience method for var-arg usage of the `removeAll` method.
    Parameters:
      `elements` - the elements to be removed
    Returns:
      true if list changed as a result of this call

  - ### retainAll

    boolean retainAll(E... elements)
    A convenience method for var-arg usage of the `retainAll` method.
    Parameters:
      `elements` - the elements to be retained
    Returns:
      true if list changed as a result of this call

  - ### remove

    void remove(int from, int to)
    A simplified way of calling `sublist(from, to).clear()`. As this is a common operation, ObservableList has this method for convenient usage.
    Parameters:
      `from` - the start of the range to remove (inclusive)
      `to` - the end of the range to remove (exclusive)
    Throws:
      `IndexOutOfBoundsException` - if an illegal range is provided

  - ### filtered

    default FilteredList<E> filtered(Predicate<E> predicate)
    Creates a `FilteredList` wrapper of this list using the specified predicate.
    Parameters:
      `predicate` - the predicate to use
    Returns:
      new `FilteredList`
    Since:
      JavaFX 8.0

  - ### sorted

    default SortedList<E> sorted(Comparator<E> comparator)
    Creates a `SortedList` wrapper of this list using the specified comparator.
    Parameters:
      `comparator` - the comparator to use or null for unordered List
    Returns:
      new `SortedList`
    Since:
      JavaFX 8.0

  - ### sorted

    default SortedList<E> sorted()
    Creates a `SortedList` wrapper of this list with the natural ordering.
    Returns:
      new `SortedList`
    Since:
      JavaFX 8.0