Class SynchronizedBag<E>
- java.lang.Object
-
- org.apache.commons.collections4.collection.SynchronizedCollection<E>
-
- org.apache.commons.collections4.bag.SynchronizedBag<E>
-
- Type Parameters:
E- the type of elements in this bag
- All Implemented Interfaces:
Serializable,Iterable<E>,Collection<E>,Bag<E>
- Direct Known Subclasses:
SynchronizedSortedBag
public class SynchronizedBag<E> extends SynchronizedCollection<E> implements Bag<E>
Decorates anotherBagto synchronize its behaviour for a multi-threaded environment.Methods are synchronized, then forwarded to the decorated bag. Iterators must be separately synchronized around the loop.
This class is Serializable from Commons Collections 3.1.
- Since:
- 3.0
- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) classSynchronizedBag.SynchronizedBagSetSynchronized Set for the Bag class.
-
Field Summary
-
Fields inherited from class org.apache.commons.collections4.collection.SynchronizedCollection
lock
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedSynchronizedBag(Bag<E> bag)Constructor that wraps (not copies).protectedSynchronizedBag(Bag<E> bag, Object lock)Constructor that wraps (not copies).
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanadd(E object, int count)AddsnCopiescopies of the specified object to the Bag.booleanequals(Object object)protected Bag<E>getBag()Gets the bag being decorated.intgetCount(Object object)Returns the number of occurrences (cardinality) of the given object currently in the bag.inthashCode()booleanremove(Object object, int count)RemovesnCopiescopies of the specified object from the Bag.static <E> SynchronizedBag<E>synchronizedBag(Bag<E> bag)Factory method to create a synchronized bag.Set<E>uniqueSet()Returns aSetof unique elements in the Bag.-
Methods inherited from class org.apache.commons.collections4.collection.SynchronizedCollection
add, addAll, clear, contains, containsAll, decorated, isEmpty, iterator, remove, removeAll, removeIf, retainAll, size, synchronizedCollection, toArray, toArray, toString
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.apache.commons.collections4.Bag
add, containsAll, iterator, remove, removeAll, retainAll, size
-
Methods inherited from interface java.util.Collection
addAll, clear, contains, isEmpty, parallelStream, removeIf, spliterator, stream, toArray, toArray, toArray
-
-
-
-
Constructor Detail
-
SynchronizedBag
protected SynchronizedBag(Bag<E> bag)
Constructor that wraps (not copies).- Parameters:
bag- the bag to decorate, must not be null- Throws:
NullPointerException- if bag is null
-
SynchronizedBag
protected SynchronizedBag(Bag<E> bag, Object lock)
Constructor that wraps (not copies).- Parameters:
bag- the bag to decorate, must not be nulllock- the lock to use, must not be null- Throws:
NullPointerException- if bag or lock is null
-
-
Method Detail
-
synchronizedBag
public static <E> SynchronizedBag<E> synchronizedBag(Bag<E> bag)
Factory method to create a synchronized bag.- Type Parameters:
E- the type of the elements in the bag- Parameters:
bag- the bag to decorate, must not be null- Returns:
- a new synchronized Bag
- Throws:
NullPointerException- if bag is null- Since:
- 4.0
-
equals
public boolean equals(Object object)
- Specified by:
equalsin interfaceCollection<E>- Overrides:
equalsin classSynchronizedCollection<E>
-
hashCode
public int hashCode()
- Specified by:
hashCodein interfaceCollection<E>- Overrides:
hashCodein classSynchronizedCollection<E>
-
add
public boolean add(E object, int count)
Description copied from interface:BagAddsnCopiescopies of the specified object to the Bag.If the object is already in the
Bag.uniqueSet()then increment its count as reported byBag.getCount(Object). Otherwise add it to theBag.uniqueSet()and report its count asnCopies.
-
remove
public boolean remove(Object object, int count)
Description copied from interface:BagRemovesnCopiescopies of the specified object from the Bag.If the number of copies to remove is greater than the actual number of copies in the Bag, no error is thrown.
-
-