E
- the type of elements in this bagpublic final class CollectionSortedBag<E> extends AbstractSortedBagDecorator<E>
SortedBag
to comply with the Collection contract.Constructor and Description |
---|
CollectionSortedBag(SortedBag<E> bag)
Constructor that wraps (not copies).
|
Modifier and Type | Method and Description |
---|---|
boolean |
add(E object)
(Violation)
Adds one copy of the specified object to the Bag.
|
boolean |
add(E object,
int count)
Adds
nCopies copies of the specified object to the Bag. |
boolean |
addAll(Collection<? extends E> coll) |
static <E> SortedBag<E> |
collectionSortedBag(SortedBag<E> bag)
Factory method to create a sorted bag that complies to the Collection contract.
|
boolean |
containsAll(Collection<?> coll)
(Violation)
Returns
true if the bag contains all elements in
the given collection, respecting cardinality. |
boolean |
remove(Object object)
(Violation)
Removes all occurrences of the given object from the bag.
|
boolean |
removeAll(Collection<?> coll)
(Violation)
Remove all elements represented in the given collection,
respecting cardinality.
|
boolean |
retainAll(Collection<?> coll)
(Violation)
Remove any members of the bag that are not in the given
collection, respecting cardinality.
|
comparator, decorated, first, last
equals, getCount, hashCode, remove, uniqueSet
clear, contains, isEmpty, iterator, setCollection, size, toArray, toArray, toString
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
getCount, iterator, remove, size, uniqueSet
clear, contains, equals, hashCode, isEmpty, parallelStream, removeIf, spliterator, stream, toArray, toArray
public CollectionSortedBag(SortedBag<E> bag)
bag
- the sorted bag to decorate, must not be nullNullPointerException
- if bag is nullpublic static <E> SortedBag<E> collectionSortedBag(SortedBag<E> bag)
E
- the type of the elements in the bagbag
- the sorted bag to decorate, must not be nullNullPointerException
- if bag is nullpublic boolean containsAll(Collection<?> coll)
Bag
true
if the bag contains all elements in
the given collection, respecting cardinality. That is, if the
given collection coll
contains n
copies
of a given object, calling Bag.getCount(Object)
on that object must
be >= n
for all n
in coll
.
The Collection.containsAll(Collection)
method specifies
that cardinality should not be respected; this method should
return true if the bag contains at least one of every object contained
in the given collection.
containsAll
in interface Collection<E>
containsAll
in interface Bag<E>
containsAll
in class AbstractCollectionDecorator<E>
coll
- the collection to check againsttrue
if the Bag contains all the collectionpublic boolean add(E object)
Bag
If the object is already in the Bag.uniqueSet()
then increment its
count as reported by Bag.getCount(Object)
. Otherwise add it to the
Bag.uniqueSet()
and report its count as 1.
Since this method always increases the size of the bag,
according to the Collection.add(Object)
contract, it
should always return true
. Since it sometimes returns
false
, this method violates the contract.
add
in interface Collection<E>
add
in interface Bag<E>
add
in class AbstractCollectionDecorator<E>
object
- the object to addtrue
if the object was not already in the uniqueSet
public boolean addAll(Collection<? extends E> coll)
addAll
in interface Collection<E>
addAll
in class AbstractCollectionDecorator<E>
public boolean remove(Object object)
Bag
This will also remove the object from the Bag.uniqueSet()
.
According to the Collection.remove(Object)
method,
this method should only remove the first occurrence of the
given object, not all occurrences.
remove
in interface Collection<E>
remove
in interface Bag<E>
remove
in class AbstractCollectionDecorator<E>
object
- the object to removetrue
if this call changed the collectionpublic boolean removeAll(Collection<?> coll)
Bag
coll
contains n
copies of a given object,
the bag will have n
fewer copies, assuming the bag
had at least n
copies to begin with.
The Collection.removeAll(Collection)
method specifies
that cardinality should not be respected; this method should
remove all occurrences of every object contained in the
given collection.
removeAll
in interface Collection<E>
removeAll
in interface Bag<E>
removeAll
in class AbstractCollectionDecorator<E>
coll
- the collection to removetrue
if this call changed the collectionpublic boolean retainAll(Collection<?> coll)
Bag
coll
contains n
copies of a
given object and the bag has m > n
copies, then
delete m - n
copies from the bag. In addition, if
e
is an object in the bag but
!coll.contains(e)
, then remove e
and any
of its copies.
The Collection.retainAll(Collection)
method specifies
that cardinality should not be respected; this method should
keep all occurrences of every object contained in the
given collection.
retainAll
in interface Collection<E>
retainAll
in interface Bag<E>
retainAll
in class AbstractCollectionDecorator<E>
coll
- the collection to retaintrue
if this call changed the collectionpublic boolean add(E object, int count)
Bag
nCopies
copies of the specified object to the Bag.
If the object is already in the Bag.uniqueSet()
then increment its
count as reported by Bag.getCount(Object)
. Otherwise add it to the
Bag.uniqueSet()
and report its count as nCopies
.
Copyright © 2001–2018 The Apache Software Foundation. All rights reserved.