public class SynchronizedBag<E> extends SynchronizedCollection<E> implements Bag <E>
Bag to 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.
lock| Modifier | Constructor and Description |
|---|---|
protected |
SynchronizedBag(Bag
Constructor that wraps (not copies).
|
protected |
SynchronizedBag(Bag
Constructor that wraps (not copies).
|
| Modifier and Type | Method and Description |
|---|---|
boolean |
add(E object, int count)
Adds
nCopies copies of the specified object to the Bag.
|
boolean |
equals(Object
|
protected Bag |
getBag()
Gets the bag being decorated.
|
int |
getCount(Object
Returns the number of occurrences (cardinality) of the given object currently in the bag.
|
int |
hashCode()
|
boolean |
remove(Object
Removes
nCopies copies of the specified object from the Bag.
|
static <E> SynchronizedBag |
synchronizedBag(Bag
Factory method to create a synchronized bag.
|
Set |
uniqueSet()
Returns a
Set of unique elements in the Bag.
|
add, addAll, clear, contains, containsAll, decorated, isEmpty, iterator, remove, removeAll, retainAll, size, synchronizedCollection, toArray, toArray, toStringclone, finalize, getClass, notify, notifyAll, wait, wait, waitadd, containsAll, iterator, remove, removeAll, retainAll, sizeaddAll, clear, contains, isEmpty, parallelStream, removeIf, spliterator, stream, toArray, toArrayprotected SynchronizedBag(Bag<E> bag)
bag - the bag to decorate, must not be null
NullPointerException - if bag is null
protected SynchronizedBag(Bag<E> bag, Object lock)
bag - the bag to decorate, must not be null
lock - the lock to use, must not be null
NullPointerException - if bag or lock is null
public static <E> SynchronizedBag<E> synchronizedBag(Bag <E> bag)
E - the type of the elements in the bag
bag - the bag to decorate, must not be null
NullPointerException - if bag is null
public boolean equals(Objectobject)
public int hashCode()
public boolean add(E object, int count)
Bag
nCopies copies of the specified object to the Bag.
If the object is already in the Bag then increment its count as reported by Bag. Otherwise add it to the Bag and report its count as nCopies.
public boolean remove(Objectobject, int count)
Bag
nCopies copies 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.