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:
  • Constructor Details

    • 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 Details

    • 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