# Class UnmodifiableList<E>

java.lang.Object
org.apache.commons.collections4.collection.AbstractCollectionDecorator<E>
org.apache.commons.collections4.list.AbstractListDecorator<E>
org.apache.commons.collections4.list.AbstractSerializableListDecorator<E>
org.apache.commons.collections4.list.UnmodifiableList<E>

Type Parameters:
  `E` - the type of the elements in the list.

All Implemented Interfaces:
  `Serializable`, `Iterable<E>`, `Collection<E>`, `List<E>`, `Unmodifiable`

public final class UnmodifiableList<E> extends AbstractSerializableListDecorator<E> implements Unmodifiable
Decorates another `List` to ensure it can't be altered.

This class is Serializable from Commons Collections 3.1.

Attempts to modify it will result in an UnsupportedOperationException.

Since:
  3.0
See Also:
  - Serialized Form

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `UnmodifiableList(List<? extends E> list)`
  Constructor that wraps (not copies).

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `add(int index, E object)`
  `boolean`
  `add(Object object)`
  `boolean`
  `addAll(int index, Collection<? extends E> coll)`
  `boolean`
  `addAll(Collection<? extends E> coll)`
  `void`
  `clear()`
  `Iterator<E>`
  `iterator()`
  `ListIterator<E>`
  `listIterator()`
  `ListIterator<E>`
  `listIterator(int index)`
  `E`
  `remove(int index)`
  `boolean`
  `remove(Object object)`
  `boolean`
  `removeAll(Collection<?> coll)`
  `boolean`
  `removeIf(Predicate<? super E> filter)`
  `boolean`
  `retainAll(Collection<?> coll)`
  `E`
  `set(int index, E object)`
  `List<E>`
  `subList(int fromIndex, int toIndex)`
  `static <E> List<E>`
  `unmodifiableList(List<? extends E> list)`
  Factory method to create an unmodifiable list.

  ### Methods inherited from class org.apache.commons.collections4.list.AbstractListDecorator

  `decorated, equals, get, hashCode, indexOf, lastIndexOf`

  ### Methods inherited from class org.apache.commons.collections4.collection.AbstractCollectionDecorator

  `contains, containsAll, isEmpty, setCollection, 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.Collection

  `parallelStream, stream`

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

  `forEach`

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

  `contains, containsAll, isEmpty, replaceAll, size, sort, spliterator, toArray, toArray`

- ## Constructor Details

  - ### UnmodifiableList

    public UnmodifiableList(List<? extends E> list)
    Constructor that wraps (not copies).
    Parameters:
      `list` - the list to decorate, must not be null
    Throws:
      `NullPointerException` - if list is null

- ## Method Details

  - ### unmodifiableList

    public static <E> List<E> unmodifiableList(List<? extends E> list)
    Factory method to create an unmodifiable list.
    Type Parameters:
      `E` - the type of the elements in the list
    Parameters:
      `list` - the list to decorate, must not be null
    Returns:
      a new unmodifiable list
    Throws:
      `NullPointerException` - if list is null
    Since:
      4.0

  - ### add

    public void add(int index, E object)
    Specified by:
      `add` in interface `List<E>`
    Overrides:
      `add` in class `AbstractListDecorator<E>`

  - ### add

    public boolean add(Object object)
    Specified by:
      `add` in interface `Collection<E>`
    Specified by:
      `add` in interface `List<E>`
    Overrides:
      `add` in class `AbstractCollectionDecorator<E>`

  - ### addAll

    public boolean addAll(Collection<? extends E> coll)
    Specified by:
      `addAll` in interface `Collection<E>`
    Specified by:
      `addAll` in interface `List<E>`
    Overrides:
      `addAll` in class `AbstractCollectionDecorator<E>`

  - ### addAll

    public boolean addAll(int index, Collection<? extends E> coll)
    Specified by:
      `addAll` in interface `List<E>`
    Overrides:
      `addAll` in class `AbstractListDecorator<E>`

  - ### clear

    public void clear()
    Specified by:
      `clear` in interface `Collection<E>`
    Specified by:
      `clear` in interface `List<E>`
    Overrides:
      `clear` in class `AbstractCollectionDecorator<E>`

  - ### iterator

    public Iterator<E> iterator()
    Specified by:
      `iterator` in interface `Collection<E>`
    Specified by:
      `iterator` in interface `Iterable<E>`
    Specified by:
      `iterator` in interface `List<E>`
    Overrides:
      `iterator` in class `AbstractCollectionDecorator<E>`

  - ### listIterator

    public ListIterator<E> listIterator()
    Specified by:
      `listIterator` in interface `List<E>`
    Overrides:
      `listIterator` in class `AbstractListDecorator<E>`

  - ### listIterator

    public ListIterator<E> listIterator(int index)
    Specified by:
      `listIterator` in interface `List<E>`
    Overrides:
      `listIterator` in class `AbstractListDecorator<E>`

  - ### remove

    public E remove(int index)
    Specified by:
      `remove` in interface `List<E>`
    Overrides:
      `remove` in class `AbstractListDecorator<E>`

  - ### remove

    public boolean remove(Object object)
    Specified by:
      `remove` in interface `Collection<E>`
    Specified by:
      `remove` in interface `List<E>`
    Overrides:
      `remove` in class `AbstractCollectionDecorator<E>`

  - ### removeAll

    public boolean removeAll(Collection<?> coll)
    Specified by:
      `removeAll` in interface `Collection<E>`
    Specified by:
      `removeAll` in interface `List<E>`
    Overrides:
      `removeAll` in class `AbstractCollectionDecorator<E>`

  - ### removeIf

    public boolean removeIf(Predicate<? super E> filter)
    Specified by:
      `removeIf` in interface `Collection<E>`
    Overrides:
      `removeIf` in class `AbstractCollectionDecorator<E>`
    Since:
      4.4

  - ### retainAll

    public boolean retainAll(Collection<?> coll)
    Specified by:
      `retainAll` in interface `Collection<E>`
    Specified by:
      `retainAll` in interface `List<E>`
    Overrides:
      `retainAll` in class `AbstractCollectionDecorator<E>`

  - ### set

    public E set(int index, E object)
    Specified by:
      `set` in interface `List<E>`
    Overrides:
      `set` in class `AbstractListDecorator<E>`

  - ### subList

    public List<E> subList(int fromIndex, int toIndex)
    Specified by:
      `subList` in interface `List<E>`
    Overrides:
      `subList` in class `AbstractListDecorator<E>`