## org.apache.commons.collections.collection
Class SynchronizedCollection

    java.lang.Object
      org.apache.commons.collections.collection.SynchronizedCollection

All Implemented Interfaces:
  Collection, Serializable

Direct Known Subclasses:
  SynchronizedBag, SynchronizedBuffer, SynchronizedList, SynchronizedSet, SynchronizedSortedSet

public class SynchronizedCollection
extends Object
implements Collection, Serializable

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

Iterators must be manually synchronized:

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

This class is Serializable from Commons Collections 3.1.

Since:
  Commons Collections 3.0
Version:
  $Revision: 1.7 $ $Date: 2004/06/03 22:02:13 $
Author:
  Stephen Colebourne
See Also:
  Serialized Form

Field Summary
`protected Collection` `collection` The collection to decorate
`protected Object` `lock` The object to lock on, needed for List/SortedSet views

Constructor Summary
`protected` `SynchronizedCollection(Collection collection)` Constructor that wraps (not copies).
`protected` `SynchronizedCollection(Collection collection, Object lock)` Constructor that wraps (not copies).

Method Summary
`boolean` `add(Object object)`
`boolean` `addAll(Collection coll)`
`void` `clear()`
`boolean` `contains(Object object)`
`boolean` `containsAll(Collection coll)`
`static Collection` `decorate(Collection coll)` Factory method to create a synchronized collection.
`boolean` `equals(Object object)`
`int` `hashCode()`
`boolean` `isEmpty()`
`Iterator` `iterator()` Iterators must be manually synchronized.
`boolean` `remove(Object object)`
`boolean` `removeAll(Collection coll)`
`boolean` `retainAll(Collection coll)`
`int` `size()`
`Object[]` `toArray()`
`Object[]` `toArray(Object[] object)`
`String` `toString()`

Methods inherited from class java.lang.Object
`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

Field Detail

### collection

    protected final Collection collection

  The collection to decorate

### lock

    protected final Object lock

  The object to lock on, needed for List/SortedSet views

Constructor Detail

### SynchronizedCollection

    protected SynchronizedCollection(Collection collection)

  Constructor that wraps (not copies).

Parameters:
  `collection` - the collection to decorate, must not be null
Throws:
  `IllegalArgumentException` - if the collection is null

### SynchronizedCollection

    protected SynchronizedCollection(Collection collection,
                                     Object lock)

  Constructor that wraps (not copies).

Parameters:
  `collection` - the collection to decorate, must not be null
  `lock` - the lock object to use, must not be null
Throws:
  `IllegalArgumentException` - if the collection is null

Method Detail

### decorate

    public static Collection decorate(Collection coll)

  Factory method to create a synchronized collection.

  Parameters:
    `coll` - the collection to decorate, must not be null
  Returns:
    a new synchronized collection
  Throws:
    `IllegalArgumentException` - if collection is null

### add

    public boolean add(Object object)

  Specified by:
    `add` in interface `Collection`

### addAll

    public boolean addAll(Collection coll)

  Specified by:
    `addAll` in interface `Collection`

### clear

    public void clear()

  Specified by:
    `clear` in interface `Collection`

### contains

    public boolean contains(Object object)

  Specified by:
    `contains` in interface `Collection`

### containsAll

    public boolean containsAll(Collection coll)

  Specified by:
    `containsAll` in interface `Collection`

### isEmpty

    public boolean isEmpty()

  Specified by:
    `isEmpty` in interface `Collection`

### iterator

    public Iterator iterator()

  Iterators must be manually synchronized.

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

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

### toArray

    public Object[] toArray()

  Specified by:
    `toArray` in interface `Collection`

### toArray

    public Object[] toArray(Object[] object)

  Specified by:
    `toArray` in interface `Collection`

### remove

    public boolean remove(Object object)

  Specified by:
    `remove` in interface `Collection`

### removeAll

    public boolean removeAll(Collection coll)

  Specified by:
    `removeAll` in interface `Collection`

### retainAll

    public boolean retainAll(Collection coll)

  Specified by:
    `retainAll` in interface `Collection`

### size

    public int size()

  Specified by:
    `size` in interface `Collection`

### equals

    public boolean equals(Object object)

  Specified by:
    `equals` in interface `Collection`

### hashCode

    public int hashCode()

  Specified by:
    `hashCode` in interface `Collection`

### toString

    public String toString()

Copyright © 2001-2005 Apache Software Foundation. All Rights Reserved.