guava/src/com/google/common/util/concurrent/AtomicLongMap.java
@CanIgnoreReturnValue
  public long updateAndGet(K key, LongUnaryOperator updaterFunction) {
    checkNotNull(updaterFunction);
    return map.compute(
        key, (k, value) -> updaterFunction.applyAsLong((value == null) ? 0L : value.longValue()));
  }
@CanIgnoreReturnValue
  public long updateAndGet(K key, LongUnaryOperator updaterFunction) {
    checkNotNull(updaterFunction);
    return map.compute(
        key, (k, value) -> updaterFunction.applyAsLong((value == null) ? 0L : value.longValue()));
  }
Updates the value currently associated with {@code key} with the specified function, and
returns the new value. If there is not currently a value associated with {@code key}, the
function is applied to {@code 0L}.

@since 21.0