protected abstract class ForwardingSortedMultiset.StandardDescendingMultiset extends ForwardingMultiset<E>
descendingMultiset()
will not reflect any changes you make to the behavior of methods such as
ForwardingCollection.add(Object)
or pollFirstEntry()
. This skeleton implementation correctly
delegates each of its operations to the appropriate methods of this ForwardingSortedMultiset
.
In many cases, you may wish to override descendingMultiset()
to return an instance
of a subclass of StandardDescendingMultiset
.
ForwardingMultiset.StandardElementSet
Multiset.Entry<E>
Constructor and Description |
---|
StandardDescendingMultiset()
Constructor for use by subclasses.
|
Modifier and Type | Method and Description |
---|---|
Comparator<? super E> |
comparator()
Returns the comparator that orders this multiset, or
Ordering.natural() if the natural
ordering of the elements is used. |
protected Multiset<E> |
delegate()
Returns the backing delegate instance that methods are forwarded to.
|
SortedMultiset<E> |
descendingMultiset()
Returns a descending view of this multiset.
|
NavigableSet<E> |
elementSet()
Returns the set of distinct elements contained in this multiset.
|
Set<Multiset.Entry<E>> |
entrySet()
Returns a view of the contents of this multiset, grouped into
Multiset.Entry instances,
each providing an element of the multiset and the count of that element. |
Multiset.Entry<E> |
firstEntry()
Returns the entry of the first element in this multiset, or
null if this multiset is
empty. |
SortedMultiset<E> |
headMultiset(E toElement,
BoundType boundType)
Returns a view of this multiset restricted to the elements less than
upperBound ,
optionally including upperBound itself. |
Iterator<E> |
iterator()
Returns an iterator over the elements in this collection.
|
Multiset.Entry<E> |
lastEntry()
Returns the entry of the last element in this multiset, or
null if this multiset is
empty. |
Multiset.Entry<E> |
pollFirstEntry()
Returns and removes the entry associated with the lowest element in this multiset, or returns
null if this multiset is empty. |
Multiset.Entry<E> |
pollLastEntry()
Returns and removes the entry associated with the greatest element in this multiset, or returns
null if this multiset is empty. |
SortedMultiset<E> |
subMultiset(E fromElement,
BoundType fromBoundType,
E toElement,
BoundType toBoundType)
Returns a view of this multiset restricted to the range between
lowerBound and upperBound . |
SortedMultiset<E> |
tailMultiset(E fromElement,
BoundType boundType)
Returns a view of this multiset restricted to the elements greater than
lowerBound ,
optionally including lowerBound itself. |
Object[] |
toArray()
Returns an array containing all of the elements in this collection.
|
<T> T[] |
toArray(T[] array)
Returns an array containing all of the elements in this collection;
the runtime type of the returned array is that of the specified array.
|
String |
toString()
Returns the string representation generated by the delegate's
toString method. |
add, count, equals, hashCode, remove, setCount, setCount, standardAdd, standardAddAll, standardClear, standardContains, standardCount, standardEquals, standardHashCode, standardIterator, standardRemove, standardRemoveAll, standardRetainAll, standardSetCount, standardSetCount, standardSize, standardToString
add, addAll, clear, contains, containsAll, isEmpty, remove, removeAll, retainAll, size, standardContainsAll, standardIsEmpty, standardToArray, standardToArray
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
add, add, contains, containsAll, count, equals, forEach, forEachEntry, hashCode, remove, remove, removeAll, retainAll, setCount, setCount, size, spliterator
addAll, clear, isEmpty, parallelStream, removeIf, stream
public StandardDescendingMultiset()
public Comparator<? super E> comparator()
SortedMultiset
Ordering.natural()
if the natural
ordering of the elements is used.comparator
in interface SortedMultiset<E>
public NavigableSet<E> elementSet()
Multiset
If the element set supports any removal operations, these necessarily cause all occurrences of the removed element(s) to be removed from the multiset. Implementations are not expected to support the add operations, although this is possible.
A common use for the element set is to find the number of distinct elements in the multiset:
elementSet().size()
.
elementSet
in interface Multiset<E>
elementSet
in interface SortedMultiset<E>
elementSet
in class ForwardingMultiset<E>
public Multiset.Entry<E> pollFirstEntry()
SortedMultiset
null
if this multiset is empty.pollFirstEntry
in interface SortedMultiset<E>
public Multiset.Entry<E> pollLastEntry()
SortedMultiset
null
if this multiset is empty.pollLastEntry
in interface SortedMultiset<E>
public SortedMultiset<E> headMultiset(E toElement, BoundType boundType)
SortedMultiset
upperBound
,
optionally including upperBound
itself. The returned multiset is a view of this
multiset, so changes to one will be reflected in the other. The returned multiset supports all
operations that this multiset supports.
The returned multiset will throw an IllegalArgumentException
on attempts to add
elements outside its range.
headMultiset
in interface SortedMultiset<E>
public SortedMultiset<E> subMultiset(E fromElement, BoundType fromBoundType, E toElement, BoundType toBoundType)
SortedMultiset
lowerBound
and upperBound
. The returned multiset is a view of this multiset, so changes to one will be
reflected in the other. The returned multiset supports all operations that this multiset
supports.
The returned multiset will throw an IllegalArgumentException
on attempts to add
elements outside its range.
This method is equivalent to tailMultiset(lowerBound,
lowerBoundType).headMultiset(upperBound, upperBoundType)
.
subMultiset
in interface SortedMultiset<E>
public SortedMultiset<E> tailMultiset(E fromElement, BoundType boundType)
SortedMultiset
lowerBound
,
optionally including lowerBound
itself. The returned multiset is a view of this
multiset, so changes to one will be reflected in the other. The returned multiset supports all
operations that this multiset supports.
The returned multiset will throw an IllegalArgumentException
on attempts to add
elements outside its range.
tailMultiset
in interface SortedMultiset<E>
protected Multiset<E> delegate()
ForwardingObject
ForwardingSet.delegate()
. Concrete subclasses override this method to supply the
instance being decorated.delegate
in class ForwardingMultiset<E>
public SortedMultiset<E> descendingMultiset()
SortedMultiset
descendingMultiset
in interface SortedMultiset<E>
public Multiset.Entry<E> firstEntry()
SortedMultiset
null
if this multiset is
empty.firstEntry
in interface SortedMultiset<E>
public Multiset.Entry<E> lastEntry()
SortedMultiset
null
if this multiset is
empty.lastEntry
in interface SortedMultiset<E>
public Set<Multiset.Entry<E>> entrySet()
Multiset
Multiset.Entry
instances,
each providing an element of the multiset and the count of that element. This set contains
exactly one entry for each distinct element in the multiset (thus it always has the same size
as the Multiset.elementSet()
). The order of the elements in the element set is unspecified.
The entry set is backed by the same data as the multiset, so any change to either is
immediately reflected in the other. However, multiset changes may or may not be reflected in
any Entry
instances already retrieved from the entry set (this is
implementation-dependent). Furthermore, implementations are not required to support
modifications to the entry set at all, and the Entry
instances themselves don't even
have methods for modification. See the specific implementation class for more details on how
its entry set handles modifications.
entrySet
in interface Multiset<E>
entrySet
in interface SortedMultiset<E>
entrySet
in class ForwardingMultiset<E>
public Iterator<E> iterator()
java.util.Collection
iterator
in interface Multiset<E>
iterator
in interface SortedMultiset<E>
iterator
in interface Iterable<E>
iterator
in interface Collection<E>
iterator
in class ForwardingCollection<E>
public Object[] toArray()
java.util.Collection
The returned array will be "safe" in that no references to it are maintained by this collection. (In other words, this method must allocate a new array even if this collection is backed by an array). The caller is thus free to modify the returned array.
This method acts as bridge between array-based and collection-based APIs.
toArray
in interface Collection<E>
toArray
in class ForwardingCollection<E>
public <T> T[] toArray(T[] array)
java.util.Collection
If this collection fits in the specified array with room to spare (i.e., the array has more elements than this collection), the element in the array immediately following the end of the collection is set to null. (This is useful in determining the length of this collection only if the caller knows that this collection does not contain any null elements.)
If this collection makes any guarantees as to what order its elements are returned by its iterator, this method must return the elements in the same order.
Like the Collection.toArray()
method, this method acts as bridge between
array-based and collection-based APIs. Further, this method allows
precise control over the runtime type of the output array, and may,
under certain circumstances, be used to save allocation costs.
Suppose x is a collection known to contain only strings. The following code can be used to dump the collection into a newly allocated array of String:
String[] y = x.toArray(new String[0]);Note that toArray(new Object[0]) is identical in function to toArray().
toArray
in interface Collection<E>
toArray
in class ForwardingCollection<E>
T
- the runtime type of the array to contain the collectionarray
- the array into which the elements of this collection are to be
stored, if it is big enough; otherwise, a new array of the same
runtime type is allocated for this purpose.public String toString()
ForwardingObject
toString
method.toString
in interface Multiset<E>
toString
in class ForwardingObject
Copyright © 2010–2020. All rights reserved.