com.google.common.collect
@GwtCompatible public final class Multisets extends java.lang.Object
Multiset instances.| Modifier and Type | Method and Description |
|---|---|
static boolean |
containsOccurrences(Multiset<?> superMultiset,
Multiset<?> subMultiset)
Returns
true if subMultiset.count(o) <=
superMultiset.count(o) for all o. |
static <E> ImmutableMultiset<E> |
copyHighestCountFirst(Multiset<E> multiset)
Returns a copy of
multiset as an ImmutableMultiset whose iteration order is
highest count first, with ties broken by the iteration order of the original multiset. |
static <E> Multiset.Entry<E> |
immutableEntry(E e,
int n)
Returns an immutable multiset entry with the specified element and count.
|
static <E> Multiset<E> |
intersection(Multiset<E> multiset1,
Multiset<?> multiset2)
Returns an unmodifiable view of the intersection of two multisets.
|
static boolean |
removeOccurrences(Multiset<?> multisetToModify,
Multiset<?> occurrencesToRemove)
For each occurrence of an element
e in occurrencesToRemove,
removes one occurrence of e in multisetToModify. |
static boolean |
retainOccurrences(Multiset<?> multisetToModify,
Multiset<?> multisetToRetain)
Modifies
multisetToModify so that its count for an element
e is at most multisetToRetain.count(e). |
static <E> Multiset<E> |
unmodifiableMultiset(ImmutableMultiset<E> multiset)
Deprecated.
no need to use this
|
static <E> Multiset<E> |
unmodifiableMultiset(Multiset<? extends E> multiset)
Returns an unmodifiable view of the specified multiset.
|
static <E> SortedMultiset<E> |
unmodifiableSortedMultiset(SortedMultiset<E> sortedMultiset)
Returns an unmodifiable view of the specified sorted multiset.
|
public static <E> Multiset<E> unmodifiableMultiset(Multiset<? extends E> multiset)
UnsupportedOperationException.
The returned multiset will be serializable if the specified multiset is serializable.
multiset - the multiset for which an unmodifiable view is to be
generated@Deprecated public static <E> Multiset<E> unmodifiableMultiset(ImmutableMultiset<E> multiset)
@Beta public static <E> SortedMultiset<E> unmodifiableSortedMultiset(SortedMultiset<E> sortedMultiset)
UnsupportedOperationException.
The returned multiset will be serializable if the specified multiset is serializable.
sortedMultiset - the sorted multiset for which an unmodifiable view is
to be generatedpublic static <E> Multiset.Entry<E> immutableEntry(@Nullable E e, int n)
e is.e - the element to be associated with the returned entryn - the count to be associated with the returned entryjava.lang.IllegalArgumentException - if n is negativepublic static <E> Multiset<E> intersection(Multiset<E> multiset1, Multiset<?> multiset2)
multiset1, with repeated occurrences of the same
element appearing consecutively.
Results are undefined if multiset1 and multiset2 are
based on different equivalence relations (as HashMultiset and
TreeMultiset are).
@Beta public static boolean containsOccurrences(Multiset<?> superMultiset, Multiset<?> subMultiset)
true if subMultiset.count(o) <=
superMultiset.count(o) for all o.@Beta public static boolean retainOccurrences(Multiset<?> multisetToModify, Multiset<?> multisetToRetain)
multisetToModify so that its count for an element
e is at most multisetToRetain.count(e).
To be precise, multisetToModify.count(e) is set to
Math.min(multisetToModify.count(e),
multisetToRetain.count(e)). This is similar to
intersection
(multisetToModify, multisetToRetain), but mutates
multisetToModify instead of returning a view.
In contrast, multisetToModify.retainAll(multisetToRetain) keeps
all occurrences of elements that appear at all in multisetToRetain, and deletes all occurrences of all other elements.
true if multisetToModify was changed as a result
of this operation@Beta public static boolean removeOccurrences(Multiset<?> multisetToModify, Multiset<?> occurrencesToRemove)
e in occurrencesToRemove,
removes one occurrence of e in multisetToModify.
Equivalently, this method modifies multisetToModify so that
multisetToModify.count(e) is set to
Math.max(0, multisetToModify.count(e) -
occurrencesToRemove.count(e)).
This is not the same as multisetToModify.
removeAll(occurrencesToRemove), which
removes all occurrences of elements that appear in
occurrencesToRemove. However, this operation is equivalent
to, albeit more efficient than, the following:
for (E e : occurrencesToRemove) {
multisetToModify.remove(e);
}true if multisetToModify was changed as a result of
this operation@Beta public static <E> ImmutableMultiset<E> copyHighestCountFirst(Multiset<E> multiset)
multiset as an ImmutableMultiset whose iteration order is
highest count first, with ties broken by the iteration order of the original multiset.