## 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:
  java.io.Serializable, java.lang.Iterable, java.util.Collection, java.util.List

    public class SynchronizedList

extends SynchronizedCollection
implements java.util.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 13:33:15 +0100 (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
`protected` `SynchronizedList(java.util.List list)` Constructor that wraps (not copies).
`protected` `SynchronizedList(java.util.List list, java.lang.Object lock)` Constructor that wraps (not copies).

Method Summary
`void` `add(int index, java.lang.Object object)`
`boolean` `addAll(int index, java.util.Collection coll)`
`static java.util.List` `decorate(java.util.List list)` Factory method to create a synchronized list.
`java.lang.Object` `get(int index)`
`protected java.util.List` `getList()` Gets the decorated list.
`int` `indexOf(java.lang.Object object)`
`int` `lastIndexOf(java.lang.Object object)`
`java.util.ListIterator` `listIterator()` Iterators must be manually synchronized.
`java.util.ListIterator` `listIterator(int index)` Iterators must be manually synchronized.
`java.lang.Object` `remove(int index)`
`java.lang.Object` `set(int index, java.lang.Object object)`
`java.util.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(java.util.List list)

  Constructor that wraps (not copies).

  Parameters:
    `list` - the list to decorate, must not be null
  Throws:
    `java.lang.IllegalArgumentException` - if list is null

### SynchronizedList

    protected SynchronizedList(java.util.List list,
                               java.lang.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:
    `java.lang.IllegalArgumentException` - if list is null

Method Detail

### decorate

    public static java.util.List decorate(java.util.List list)

  Factory method to create a synchronized list.

  Parameters:
    `list` - the list to decorate, must not be null
  Throws:
    `java.lang.IllegalArgumentException` - if list is null

### getList

    protected java.util.List getList()

  Gets the decorated list.

  Returns:
    the decorated list

### add

    public void add(int index,
                    java.lang.Object object)

  Specified by:
    `add` in interface `java.util.List`

### addAll

    public boolean addAll(int index,
                          java.util.Collection coll)

  Specified by:
    `addAll` in interface `java.util.List`

### get

    public java.lang.Object get(int index)

  Specified by:
    `get` in interface `java.util.List`

### indexOf

    public int indexOf(java.lang.Object object)

  Specified by:
    `indexOf` in interface `java.util.List`

### lastIndexOf

    public int lastIndexOf(java.lang.Object object)

  Specified by:
    `lastIndexOf` in interface `java.util.List`

### listIterator

    public java.util.ListIterator listIterator()

  Iterators must be manually synchronized.

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

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

### listIterator

    public java.util.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 `java.util.List`
  Returns:
    an iterator that must be manually synchronized on the collection

### remove

    public java.lang.Object remove(int index)

  Specified by:
    `remove` in interface `java.util.List`

### set

    public java.lang.Object set(int index,
                                java.lang.Object object)

  Specified by:
    `set` in interface `java.util.List`

### subList

    public java.util.List subList(int fromIndex,
                                  int toIndex)

  Specified by:
    `subList` in interface `java.util.List`

Copyright © 2001-2008 The Apache Software Foundation. All Rights Reserved.