guava/src/com/google/common/collect/EnumMultiset.java
@CanIgnoreReturnValue
  @Override
  public int remove(@Nullable Object element, int occurrences) {
    if (element == null || !isActuallyE(element)) {
      return 0;
    }
    Enum<?> e = (Enum<?>) element;
    checkNonnegative(occurrences, "occurrences");
    if (occurrences == 0) {
      return count(element);
    }
    int index = e.ordinal();
    int oldCount = counts[index];
    if (oldCount == 0) {
      return 0;
    } else if (oldCount <= occurrences) {
      counts[index] = 0;
      distinctElements--;
      size -= oldCount;
    } else {
      counts[index] = oldCount - occurrences;
      size -= occurrences;
    }
    return oldCount;
  }
@CanIgnoreReturnValue
  @Override
  public int remove(@Nullable Object element, int occurrences) {
    if (element == null || !isActuallyE(element)) {
      return 0;
    }
    Enum<?> e = (Enum<?>) element;
    checkNonnegative(occurrences, "occurrences");
    if (occurrences == 0) {
      return count(element);
    }
    int index = e.ordinal();
    int oldCount = counts[index];
    if (oldCount == 0) {
      return 0;
    } else if (oldCount <= occurrences) {
      counts[index] = 0;
      distinctElements--;
      size -= oldCount;
    } else {
      counts[index] = oldCount - occurrences;
      size -= occurrences;
    }
    return oldCount;
  }
@ CanIgnoreReturnValue @ Override public int remove ( @ Nullable Object element , int occurrences ) { if ( element == null || ! isActuallyE ( element ) ) { return 0 ; } Enum < ? > e = ( Enum < ? > ) element ; checkNonnegative ( occurrences , "occurrences" ) ; if ( occurrences == 0 ) { return count ( element ) ; } int index = e . ordinal ( ) ; int oldCount = counts [ index ] ; if ( oldCount == 0 ) { return 0 ; } else if ( oldCount <= occurrences ) { counts [ index ] = 0 ; distinctElements -- ; size -= oldCount ; } else { counts [ index ] = oldCount - occurrences ; size -= occurrences ; } return oldCount ; }
Modification Operations
Modification Operations