/** * For each occurrence of an element {@code e} in {@code occurrencesToRemove}, * removes one occurrence of {@code e} in {@code multisetToModify}. * * <p>Equivalently, this method modifies {@code multisetToModify} so that * {@code multisetToModify.count(e)} is set to * {@code Math.max(0, multisetToModify.count(e) - * occurrencesToRemove.count(e))}. * * <p>This is <i>not</i> the same as {@code multisetToModify.} * {@link Multiset#removeAll removeAll}{@code (occurrencesToRemove)}, which * removes all occurrences of elements that appear in * {@code occurrencesToRemove}. However, this operation <i>is</i> equivalent * to, albeit more efficient than, the following: <pre> {@code * * for (E e : occurrencesToRemove) { * multisetToModify.remove(e); * }}</pre> * * @return {@code true} if {@code multisetToModify} was changed as a result of * this operation * @since 10.0 */ public static boolean removeOccurrences( Multiset<?> multisetToModify, Multiset<?> occurrencesToRemove) { return removeOccurrencesImpl(multisetToModify, occurrencesToRemove); }
/** * For each occurrence of an element {@code e} in {@code occurrencesToRemove}, * removes one occurrence of {@code e} in {@code multisetToModify}. * * <p>Equivalently, this method modifies {@code multisetToModify} so that * {@code multisetToModify.count(e)} is set to * {@code Math.max(0, multisetToModify.count(e) - * occurrencesToRemove.count(e))}. * * <p>This is <i>not</i> the same as {@code multisetToModify.} * {@link Multiset#removeAll removeAll}{@code (occurrencesToRemove)}, which * removes all occurrences of elements that appear in * {@code occurrencesToRemove}. However, this operation <i>is</i> equivalent * to, albeit more efficient than, the following: <pre> {@code * * for (E e : occurrencesToRemove) { * multisetToModify.remove(e); * }}</pre> * * @return {@code true} if {@code multisetToModify} was changed as a result of * this operation * @since 10.0 */ public static boolean removeOccurrences( Multiset<?> multisetToModify, Multiset<?> occurrencesToRemove) { return removeOccurrencesImpl(multisetToModify, occurrencesToRemove); }
/** * For each occurrence of an element {@code e} in {@code occurrencesToRemove}, * removes one occurrence of {@code e} in {@code multisetToModify}. * * <p>Equivalently, this method modifies {@code multisetToModify} so that * {@code multisetToModify.count(e)} is set to * {@code Math.max(0, multisetToModify.count(e) - * occurrencesToRemove.count(e))}. * * <p>This is <i>not</i> the same as {@code multisetToModify.} * {@link Multiset#removeAll removeAll}{@code (occurrencesToRemove)}, which * removes all occurrences of elements that appear in * {@code occurrencesToRemove}. However, this operation <i>is</i> equivalent * to, albeit more efficient than, the following: <pre> {@code * * for (E e : occurrencesToRemove) { * multisetToModify.remove(e); * }}</pre> * * @return {@code true} if {@code multisetToModify} was changed as a result of * this operation * @since 10.0 */ public static boolean removeOccurrences( Multiset<?> multisetToModify, Multiset<?> occurrencesToRemove) { return removeOccurrencesImpl(multisetToModify, occurrencesToRemove); }
/** * For each occurrence of an element {@code e} in {@code occurrencesToRemove}, * removes one occurrence of {@code e} in {@code multisetToModify}. * * <p>Equivalently, this method modifies {@code multisetToModify} so that * {@code multisetToModify.count(e)} is set to * {@code Math.max(0, multisetToModify.count(e) - * occurrencesToRemove.count(e))}. * * <p>This is <i>not</i> the same as {@code multisetToModify.} * {@link Multiset#removeAll removeAll}{@code (occurrencesToRemove)}, which * removes all occurrences of elements that appear in * {@code occurrencesToRemove}. However, this operation <i>is</i> equivalent * to, albeit more efficient than, the following: <pre> {@code * * for (E e : occurrencesToRemove) { * multisetToModify.remove(e); * }}</pre> * * @return {@code true} if {@code multisetToModify} was changed as a result of * this operation * @since 10.0 */ public static boolean removeOccurrences( Multiset<?> multisetToModify, Multiset<?> occurrencesToRemove) { return removeOccurrencesImpl(multisetToModify, occurrencesToRemove); }
/** * For each occurrence of an element {@code e} in {@code occurrencesToRemove}, * removes one occurrence of {@code e} in {@code multisetToModify}. * * <p>Equivalently, this method modifies {@code multisetToModify} so that * {@code multisetToModify.count(e)} is set to * {@code Math.max(0, multisetToModify.count(e) - * occurrencesToRemove.count(e))}. * * <p>This is <i>not</i> the same as {@code multisetToModify.} * {@link Multiset#removeAll removeAll}{@code (occurrencesToRemove)}, which * removes all occurrences of elements that appear in * {@code occurrencesToRemove}. However, this operation <i>is</i> equivalent * to, albeit more efficient than, the following: <pre> {@code * * for (E e : occurrencesToRemove) { * multisetToModify.remove(e); * }}</pre> * * @return {@code true} if {@code multisetToModify} was changed as a result of * this operation * @since 10.0 */ public static boolean removeOccurrences( Multiset<?> multisetToModify, Multiset<?> occurrencesToRemove) { return removeOccurrencesImpl(multisetToModify, occurrencesToRemove); }
/** * For each occurrence of an element {@code e} in {@code occurrencesToRemove}, * removes one occurrence of {@code e} in {@code multisetToModify}. * * <p>Equivalently, this method modifies {@code multisetToModify} so that * {@code multisetToModify.count(e)} is set to * {@code Math.max(0, multisetToModify.count(e) - * occurrencesToRemove.count(e))}. * * <p>This is <i>not</i> the same as {@code multisetToModify.} * {@link Multiset#removeAll removeAll}{@code (occurrencesToRemove)}, which * removes all occurrences of elements that appear in * {@code occurrencesToRemove}. However, this operation <i>is</i> equivalent * to, albeit more efficient than, the following: <pre> {@code * * for (E e : occurrencesToRemove) { * multisetToModify.remove(e); * }}</pre> * * @return {@code true} if {@code multisetToModify} was changed as a result of * this operation * @since 10.0 */ public static boolean removeOccurrences( Multiset<?> multisetToModify, Multiset<?> occurrencesToRemove) { return removeOccurrencesImpl(multisetToModify, occurrencesToRemove); }
/** * For each occurrence of an element {@code e} in {@code occurrencesToRemove}, * removes one occurrence of {@code e} in {@code multisetToModify}. * * <p>Equivalently, this method modifies {@code multisetToModify} so that * {@code multisetToModify.count(e)} is set to * {@code Math.max(0, multisetToModify.count(e) - * occurrencesToRemove.count(e))}. * * <p>This is <i>not</i> the same as {@code multisetToModify.} * {@link Multiset#removeAll removeAll}{@code (occurrencesToRemove)}, which * removes all occurrences of elements that appear in * {@code occurrencesToRemove}. However, this operation <i>is</i> equivalent * to, albeit more efficient than, the following: <pre> {@code * * for (E e : occurrencesToRemove) { * multisetToModify.remove(e); * }}</pre> * * @return {@code true} if {@code multisetToModify} was changed as a result of * this operation * @since 10.0 */ public static boolean removeOccurrences( Multiset<?> multisetToModify, Multiset<?> occurrencesToRemove) { return removeOccurrencesImpl(multisetToModify, occurrencesToRemove); }
/** * For each occurrence of an element {@code e} in {@code occurrencesToRemove}, * removes one occurrence of {@code e} in {@code multisetToModify}. * * <p>Equivalently, this method modifies {@code multisetToModify} so that * {@code multisetToModify.count(e)} is set to * {@code Math.max(0, multisetToModify.count(e) - * occurrencesToRemove.count(e))}. * * <p>This is <i>not</i> the same as {@code multisetToModify.} * {@link Multiset#removeAll removeAll}{@code (occurrencesToRemove)}, which * removes all occurrences of elements that appear in * {@code occurrencesToRemove}. However, this operation <i>is</i> equivalent * to, albeit more efficient than, the following: <pre> {@code * * for (E e : occurrencesToRemove) { * multisetToModify.remove(e); * }}</pre> * * @return {@code true} if {@code multisetToModify} was changed as a result of * this operation * @since 10.0 */ @Beta public static boolean removeOccurrences( Multiset<?> multisetToModify, Multiset<?> occurrencesToRemove) { return removeOccurrencesImpl(multisetToModify, occurrencesToRemove); }