E
- the type of elements in this bagpublic final class CollectionBag<E> extends AbstractBagDecorator<E>
Bag
to comply with the Collection contract.
By decorating an existing Bag
instance with a CollectionBag
,
it can be safely passed on to methods that require Collection types that
are fully compliant with the Collection contract.
The method javadoc highlights the differences compared to the original Bag interface.
Bag
,
Serialized FormConstructor and Description |
---|
CollectionBag(Bag<E> bag)
Constructor that wraps (not copies).
|
Modifier and Type | Method and Description |
---|---|
boolean |
add(E object)
(Change)
Adds one copy of the specified object to the Bag.
|
boolean |
add(E object,
int count)
(Change)
Adds
count copies of the specified object to the Bag. |
boolean |
addAll(java.util.Collection<? extends E> coll) |
static <E> Bag<E> |
collectionBag(Bag<E> bag)
Factory method to create a bag that complies to the Collection contract.
|
boolean |
containsAll(java.util.Collection<?> coll)
(Change)
Returns
true if the bag contains all elements in
the given collection, not respecting cardinality. |
boolean |
remove(java.lang.Object object)
(Change)
Removes the first occurrence of the given object from the bag.
|
boolean |
removeAll(java.util.Collection<?> coll)
(Change)
Remove all elements represented in the given collection,
not respecting cardinality.
|
boolean |
retainAll(java.util.Collection<?> coll)
(Change)
Remove any members of the bag that are not in the given collection,
not respecting cardinality.
|
equals, getCount, hashCode, remove, uniqueSet
clear, contains, isEmpty, iterator, size, toArray, toArray, toString
public static <E> Bag<E> collectionBag(Bag<E> bag)
E
- the type of the elements in the bagbag
- the bag to decorate, must not be nulljava.lang.NullPointerException
- if bag is nullpublic boolean containsAll(java.util.Collection<?> coll)
true
if the bag contains all elements in
the given collection, not respecting cardinality. That is,
if the given collection coll
contains at least one of
every object contained in this object.containsAll
in interface java.util.Collection<E>
containsAll
in interface Bag<E>
containsAll
in class AbstractCollectionDecorator<E>
coll
- the collection to check againsttrue
if the Bag contains at least one of every object in the collectionpublic boolean add(E object)
Since this method always increases the size of the bag, it
will always return true
.
public boolean addAll(java.util.Collection<? extends E> coll)
addAll
in interface java.util.Collection<E>
addAll
in class AbstractCollectionDecorator<E>
public boolean remove(java.lang.Object object)
This will also remove the object from the AbstractBagDecorator.uniqueSet()
if the
bag contains no occurrence anymore of the object after this operation.
public boolean removeAll(java.util.Collection<?> coll)
public boolean retainAll(java.util.Collection<?> coll)
coll
will be retained in the bag with the same
number of copies prior to this operation. All other objects will be
completely removed from this bag.
This implementation iterates over the elements of this bag, checking
each element in turn to see if it's contained in coll
.
If it's not contained, it's removed from this bag. As a consequence,
it is advised to use a collection type for coll
that provides
a fast (e.g. O(1)) implementation of Collection.contains(Object)
.
public boolean add(E object, int count)
count
copies of the specified object to the Bag.
Since this method always increases the size of the bag, it
will always return true
.
Copyright © 2010 - 2020 Adobe. All Rights Reserved