## 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:
  Collection, List, Serializable

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: 1.5 $ $Date: 2004/06/03 22:02:13 $
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(List list)` Constructor that wraps (not copies).
`protected` `SynchronizedList(List list, Object lock)` Constructor that wraps (not copies).

Method Summary
`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-2005 Apache Software Foundation. All Rights Reserved.