org.apache.commons.collections.list

## Class SynchronizedList

- java.lang.Object
- - org.apache.commons.collections.collection.SynchronizedCollection
  - - org.apache.commons.collections.list.SynchronizedList

- All Implemented Interfaces:
    Serializable, Iterable, Collection, List

      public class SynchronizedList
      extends SynchronizedCollection
      implements List

  Decorates another `List` to synchronize its behaviour for a multi-threaded environment.

  Methods are synchronized, then forwarded to the decorated list.

  This class is Serializable from Commons Collections 3.1.

  Since:
    Commons Collections 3.0
  Version:
    $Revision: 646777 $ $Date: 2008-04-10 14:33:15 +0200 (Thu, 10 Apr 2008) $
  Author:
    Stephen Colebourne
  See Also:
    Serialized Form

- - ### Field Summary

    - ### Fields inherited from class org.apache.commons.collections.collection.SynchronizedCollection

      `collection, lock`

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `protected` | `SynchronizedList(List list)` Constructor that wraps (not copies).
    `protected` | `SynchronizedList(List list, Object lock)` Constructor that wraps (not copies).

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `add(int index, Object object)`
    `boolean` | `addAll(int index, Collection coll)`
    `static List` | `decorate(List list)` Factory method to create a synchronized list.
    `Object` | `get(int index)`
    `protected List` | `getList()` Gets the decorated list.
    `int` | `indexOf(Object object)`
    `int` | `lastIndexOf(Object object)`
    `ListIterator` | `listIterator()` Iterators must be manually synchronized.
    `ListIterator` | `listIterator(int index)` Iterators must be manually synchronized.
    `Object` | `remove(int index)`
    `Object` | `set(int index, Object object)`
    `List` | `subList(int fromIndex, int toIndex)`

    - ### Methods inherited from class org.apache.commons.collections.collection.SynchronizedCollection

      `add, addAll, clear, contains, containsAll, decorate, equals, hashCode, isEmpty, iterator, remove, removeAll, retainAll, 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.List

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

- - ### Constructor Detail

    - #### SynchronizedList

          protected SynchronizedList(List list)

      Constructor that wraps (not copies).
      Parameters:
        `list` - the list to decorate, must not be null
      Throws:
        `IllegalArgumentException` - if list is null

    - #### SynchronizedList

          protected SynchronizedList(List list,
                          Object lock)

      Constructor that wraps (not copies).
      Parameters:
        `list` - the list to decorate, must not be null
        `lock` - the lock to use, must not be null
      Throws:
        `IllegalArgumentException` - if list is null

  - ### Method Detail

    - #### decorate

          public static List decorate(List list)

      Factory method to create a synchronized list.
      Parameters:
        `list` - the list to decorate, must not be null
      Throws:
        `IllegalArgumentException` - if list is null

    - #### getList

          protected List getList()

      Gets the decorated list.
      Returns:
        the decorated list

    - #### add

          public void add(int index,
                 Object object)

      Specified by:
        `add` in interface `List`

    - #### addAll

          public boolean addAll(int index,
                       Collection coll)

      Specified by:
        `addAll` in interface `List`

    - #### get

          public Object get(int index)

      Specified by:
        `get` in interface `List`

    - #### indexOf

          public int indexOf(Object object)

      Specified by:
        `indexOf` in interface `List`

    - #### lastIndexOf

          public int lastIndexOf(Object object)

      Specified by:
        `lastIndexOf` in interface `List`

    - #### listIterator

          public ListIterator listIterator()

      Iterators must be manually synchronized.

           synchronized (coll) {
             ListIterator it = coll.listIterator();
             // do stuff with iterator
           }

      Specified by:
        `listIterator` in interface `List`
      Returns:
        an iterator that must be manually synchronized on the collection

    - #### listIterator

          public ListIterator listIterator(int index)

      Iterators must be manually synchronized.

           synchronized (coll) {
             ListIterator it = coll.listIterator(3);
             // do stuff with iterator
           }

      Specified by:
        `listIterator` in interface `List`
      Returns:
        an iterator that must be manually synchronized on the collection

    - #### remove

          public Object remove(int index)

      Specified by:
        `remove` in interface `List`

    - #### set

          public Object set(int index,
                   Object object)

      Specified by:
        `set` in interface `List`

    - #### subList

          public List subList(int fromIndex,
                     int toIndex)

      Specified by:
        `subList` in interface `List`

Copyright © 2001–2015 The Apache Software Foundation. All rights reserved.