E - the type held in the multiset
public interface MultiSet<E> extends Collection<E>
Suppose you have a MultiSet that contains {a, a, b, c}. Calling getCount(Object) on a would return 2, while calling uniqueSet() would return {a, b, c}.
| Modifier and Type | Interface and Description |
|---|---|
static interface |
MultiSet
An unmodifiable entry for an element and its occurrence as contained in a MultiSet.
|
| Modifier and Type | Method and Description |
|---|---|
boolean |
add(E object)
Adds one copy of the specified object to the MultiSet.
|
int |
add(E object, int occurrences)
Adds a number of occurrences of the specified object to the MultiSet.
|
boolean |
containsAll(Collection
Returns
true if the MultiSet contains at least one occurrence for each element contained in the given collection.
|
Set |
entrySet()
Returns a
Set of all entries contained in the MultiSet.
|
boolean |
equals(Object
Compares this MultiSet to another object.
|
int |
getCount(Object
Returns the number of occurrences of the given object currently in the MultiSet.
|
int |
hashCode()
Gets a hash code for the MultiSet compatible with the definition of equals.
|
Iterator |
iterator()
Returns an
Iterator over the entire set of members, including copies due to cardinality.
|
boolean |
remove(Object
Removes one occurrence of the given object from the MultiSet.
|
int |
remove(Object
Removes a number of occurrences of the specified object from the MultiSet.
|
boolean |
removeAll(Collection
Remove all occurrences of all elements from this MultiSet represented in the given collection.
|
boolean |
retainAll(Collection
Remove any elements of this MultiSet that are not contained in the given collection.
|
int |
setCount(E object, int count)
Sets the number of occurrences of the specified object in the MultiSet to the given count.
|
int |
size()
Returns the total number of items in the MultiSet.
|
Set |
uniqueSet()
Returns a
Set of unique elements in the MultiSet.
|
addAll, clear, contains, isEmpty, parallelStream, removeIf, spliterator, stream, toArray, toArrayint getCount(Objectobject)
object - the object to search for
int setCount(E object, int count)
If the provided count is zero, the object will be removed from the uniqueSet().
object - the object to update
count - the number of occurrences of the object
IllegalArgumentException - if count is negative
boolean add(E object)
If the object is already in the uniqueSet() then increment its count as reported by getCount(Object). Otherwise add it to the uniqueSet() and report its count as 1.
add in interface
Collection<E>
object - the object to add
true always, as the size of the MultiSet is increased in any case
int add(E object, int occurrences)
If the object is already in the uniqueSet() then increment its count as reported by getCount(Object). Otherwise add it to the uniqueSet() and report its count as occurrences.
object - the object to add
occurrences - the number of occurrences to add, may be zero, in which case no change is made to the multiset
IllegalArgumentException - if occurrences is negative
boolean remove(Objectobject)
If the number of occurrences after this operations is reduced to zero, the object will be removed from the uniqueSet().
remove in interface
Collection<E>
object - the object to remove
true if this call changed the collection
int remove(Objectobject, int occurrences)
If the number of occurrences to remove is greater than the actual number of occurrences in the multiset, the object will be removed from the multiset.
object - the object to remove
occurrences - the number of occurrences to remove, may be zero, in which case no change is made to the multiset
IllegalArgumentException - if occurrences is negative
Set<E> uniqueSet()
Set of unique elements in the MultiSet.
Uniqueness constraints are the same as those in Set.
The returned set is backed by this multiset, so any change to either is immediately reflected in the other. Only removal operations are supported, in which case all occurrences of the element are removed from the backing multiset.
Set<MultiSet .Entry <E>> entrySet()
Set of all entries contained in the MultiSet.
The returned set is backed by this multiset, so any change to either is immediately reflected in the other.
Iterator<E> iterator()
Iterator over the entire set of members, including copies due to cardinality. This iterator is fail-fast and will not tolerate concurrent modifications.
int size()
size in interface
Collection<E>
boolean containsAll(Collection<?> coll)
true if the MultiSet contains at least one occurrence for each element contained in the given collection.
containsAll in interface
Collection<E>
coll - the collection to check against
true if the MultiSet contains all the collection
boolean removeAll(Collection<?> coll)
removeAll in interface
Collection<E>
coll - the collection of elements to remove
true if this call changed the multiset
boolean retainAll(Collection<?> coll)
retainAll in interface
Collection<E>
coll - the collection of elements to retain
true if this call changed the multiset
boolean equals(Objectobj)
This MultiSet equals another object if it is also a MultiSet that contains the same number of occurrences of the same elements.
equals in interface
Collection<E>
equals in class
Object
obj - the object to compare to
int hashCode()
(e==null ? 0 : e.hashCode()) ^ noOccurances).
hashCode in interface
Collection<E>
hashCode in class
Object