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:
java.io.Serializable,java.lang.Iterable<E>,java.util.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
-
-
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, java.lang.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(java.lang.Object object)protected Bag<E>getBag()Gets the bag being decorated.intgetCount(java.lang.Object object)Returns the number of occurrences (cardinality) of the given object currently in the bag.inthashCode()booleanremove(java.lang.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.java.util.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
-
-
-
-
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:
java.lang.NullPointerException- if bag is null- Since:
- 4.0
-
equals
public boolean equals(java.lang.Object object)
- Specified by:
equalsin interfacejava.util.Collection<E>- Overrides:
equalsin classSynchronizedCollection<E>
-
hashCode
public int hashCode()
- Specified by:
hashCodein interfacejava.util.Collection<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(java.lang.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.
-
uniqueSet
public java.util.Set<E> uniqueSet()
Description copied from interface:BagReturns aSetof unique elements in the Bag.Uniqueness constraints are the same as those in
Set.
-
getCount
public int getCount(java.lang.Object object)
Description copied from interface:BagReturns the number of occurrences (cardinality) of the given object currently in the bag. If the object does not exist in the bag, return 0.
-
-