|
||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--org.apache.commons.collections.DefaultMapBag
This class provides a skeletal implementation of the Bag
interface to minimize the effort required for target implementations.
Subclasses need only to call setMap(Map)
in their constructor
specifying a map instance that will be used to store the contents of
the bag.
The map will be used to map bag elements to a number; the number represents the number of occurrences of that element in the bag.
Constructor Summary | |
DefaultMapBag()
Constructor. |
Method Summary | |
boolean |
add(Object o)
Adds a new element to the bag by incrementing its count in the underlying map. |
boolean |
add(Object o,
int i)
Adds a new element to the bag by incrementing its count in the map. |
boolean |
addAll(Collection c)
Invokes add(Object) for each element in the given collection. |
protected int |
calcTotalSize()
Actually walks the bag to make sure the count is correct and resets the running total |
void |
clear()
Clears the bag by clearing the underlying map. |
boolean |
contains(Object o)
Determines if the bag contains the given element by checking if the underlying map contains the element as a key. |
boolean |
containsAll(Bag other)
Returns true if the bag contains all elements in
the given collection, respecting cardinality. |
boolean |
containsAll(Collection c)
(Violation) Returns true if the bag contains all elements in
the given collection, respecting cardinality. |
boolean |
equals(Object o)
Returns true if the given object is not null, has the precise type of this bag, and contains the same number of occurrences of all the same elements. |
int |
getCount(Object o)
Returns the number of occurrence of the given element in this bag by looking up its count in the underlying map. |
protected Map |
getMap()
Utility method for implementations to access the map that backs this bag. |
int |
hashCode()
Returns the hash code of the underlying map. |
boolean |
isEmpty()
Returns true if the underlying map is empty. |
Iterator |
iterator()
Returns an Iterator over the entire set of members,
including copies due to cardinality. |
boolean |
remove(Object o)
(Violation) Remove all occurrences of the given object from the bag, and do not represent the object in the uniqueSet() . |
boolean |
remove(Object o,
int i)
Remove the given number of occurrences from the bag. |
boolean |
removeAll(Collection c)
(Violation) Remove all elements represented in the given collection, respecting cardinality. |
boolean |
retainAll(Bag other)
Remove any members of the bag that are not in the given bag, respecting cardinality. |
boolean |
retainAll(Collection c)
Remove any members of the bag that are not in the given bag, respecting cardinality. |
protected void |
setMap(Map m)
Utility method for implementations to set the map that backs this bag. |
int |
size()
Returns the number of elements in this bag. |
Object[] |
toArray()
Returns an array of all of this bag's elements. |
Object[] |
toArray(Object[] a)
Returns an array of all of this bag's elements. |
String |
toString()
Implement a toString() method suitable for debugging |
Set |
uniqueSet()
Returns an unmodifiable view of the underlying map's key set. |
Methods inherited from class java.lang.Object |
clone,
finalize,
getClass,
notify,
notifyAll,
wait,
wait,
wait |
Constructor Detail |
public DefaultMapBag()
setMap(Map)
in
their constructors.Method Detail |
public boolean add(Object o)
Bag.add(Object)
public boolean add(Object o, int i)
Bag.add(Object, int)
public boolean addAll(Collection c)
add(Object)
for each element in the given collection.Collection.addAll(Collection)
public void clear()
public boolean contains(Object o)
public boolean containsAll(Collection c)
true
if the bag contains all elements in
the given collection, respecting cardinality. That is, if the
given collection C
contains n
copies
of a given object, calling Bag.getCount(Object)
on that object must
be >= n
for all n
in C
.
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. A future version of this method will comply
with that contract.
public boolean containsAll(Bag other)
true
if the bag contains all elements in
the given collection, respecting cardinality.containsAll(Collection)
public boolean equals(Object o)
o
- the object to test for equalitypublic int hashCode()
public boolean isEmpty()
public Iterator iterator()
Iterator
over the entire set of members,
including copies due to cardinality. This iterator is fail-fast
and will not tolerate concurrent modifications.public boolean remove(Object o)
Bag.uniqueSet()
.
According to the Collection.remove(Object)
method,
this method should only remove the first occurrence of the
given object, not all occurrences. A future version of this
method will comply with the contract by only removing one occurrence
of the given object.
true
if this call changed the collectionBag.remove(Object, int)
public boolean remove(Object o, int i)
i
occurrences or less, the item will be
removed from the Bag.uniqueSet()
.true
if this call changed the collectionBag.getCount(Object)
,
Bag.remove(Object)
public boolean removeAll(Collection c)
C
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. A future version of this method will comply
with that contract.
true
if this call changed the collectionpublic boolean retainAll(Collection c)
public boolean retainAll(Bag other)
true
if this call changed the collectionretainAll(Collection)
public Object[] toArray()
public Object[] toArray(Object[] a)
a
- the array to populatepublic int getCount(Object o)
Bag.getCount(Object)
public Set uniqueSet()
public int size()
protected int calcTotalSize()
protected void setMap(Map m)
protected Map getMap()
public String toString()
|
||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |