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