Class 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
    • 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
      • 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
      • subList

        public List subList​(int fromIndex,
                            int toIndex)
        Specified by:
        subList in interface List