@Override public long put(final long k, final long v) { final int pos = find(k); if (pos < 0) { insert(-pos - 1, k, v); return defRetValue; } final long oldValue = value[pos]; value[pos] = v; return oldValue; } private long addToValue(final int pos, final long incr) {
/** {@inheritDoc} */ @Override public long putIfAbsent(final long k, final long v) { final int pos = find(k); if (pos >= 0) return value[pos]; insert(-pos - 1, k, v); return defRetValue; } /** {@inheritDoc} */
/** {@inheritDoc} */ @Override public long computeIfAbsent(final long k, final java.util.function.LongUnaryOperator mappingFunction) { java.util.Objects.requireNonNull(mappingFunction); final int pos = find(k); if (pos >= 0) return value[pos]; final long newValue = mappingFunction.applyAsLong(k); insert(-pos - 1, k, newValue); return newValue; } /** {@inheritDoc} */
/** {@inheritDoc} */ @Override public long computeIfAbsentNullable(final long k, final java.util.function.LongFunction<? extends Long> mappingFunction) { java.util.Objects.requireNonNull(mappingFunction); final int pos = find(k); if (pos >= 0) return value[pos]; final Long newValue = mappingFunction.apply(k); if (newValue == null) return defRetValue; final long v = (newValue).longValue(); insert(-pos - 1, k, v); return v; } /** {@inheritDoc} */
/** {@inheritDoc} */ @Override public long merge(final long k, final long v, final java.util.function.BiFunction<? super Long, ? super Long, ? extends Long> remappingFunction) { java.util.Objects.requireNonNull(remappingFunction); final int pos = find(k); if (pos < 0) { insert(-pos - 1, k, v); return v; } final Long newValue = remappingFunction.apply(Long.valueOf(value[pos]), Long.valueOf(v)); if (newValue == null) { if (((k) == (0))) removeNullEntry(); else removeEntry(pos); return defRetValue; } return value[pos] = (newValue).longValue(); } /*
/** {@inheritDoc} */ @Override public long compute(final long k, final java.util.function.BiFunction<? super Long, ? super Long, ? extends Long> remappingFunction) { java.util.Objects.requireNonNull(remappingFunction); final int pos = find(k); final Long newValue = remappingFunction.apply(Long.valueOf(k), pos >= 0 ? Long.valueOf(value[pos]) : null); if (newValue == null) { if (pos >= 0) { if (((k) == (0))) removeNullEntry(); else removeEntry(pos); } return defRetValue; } long newVal = (newValue).longValue(); if (pos < 0) { insert(-pos - 1, k, newVal); return newVal; } return value[pos] = newVal; } /** {@inheritDoc} */