package org.eclipse.collections.api.map.primitive;
import org.eclipse.collections.api.DoubleIterable;
import org.eclipse.collections.api.block.function.Function;
import org.eclipse.collections.api.block.function.Function0;
import org.eclipse.collections.api.block.function.Function2;
import org.eclipse.collections.api.block.function.primitive.DoubleToObjectFunction;
import org.eclipse.collections.api.block.predicate.primitive.DoubleObjectPredicate;
import org.eclipse.collections.api.block.procedure.Procedure;
import org.eclipse.collections.api.tuple.primitive.DoubleObjectPair;
public interface MutableDoubleObjectMap<V> extends DoubleObjectMap<V>, MutablePrimitiveObjectMap<V>
{
V put(double key, V value);
default V putPair(DoubleObjectPair<V> keyValuePair)
{
return this.put(keyValuePair.getOne(), keyValuePair.getTwo());
}
void putAll(DoubleObjectMap<? extends V> map);
V removeKey(double key);
V remove(double key);
V getIfAbsentPut(double key, V value);
V getIfAbsentPut(double key, Function0<? extends V> function);
V getIfAbsentPutWithKey(double key, DoubleToObjectFunction<? extends V> function);
<P> V getIfAbsentPutWith(double key, Function<? super P, ? extends V> function, P parameter);
V updateValue(double key, Function0<? extends V> factory, Function<? super V, ? extends V> function);
<P> V updateValueWith(double key, Function0<? extends V> factory, Function2<? super V, ? super P, ? extends V> function, P parameter);
@Override
MutableObjectDoubleMap<V> flipUniqueValues();
@Override
MutableDoubleObjectMap<V> tap(Procedure<? super V> procedure);
@Override
MutableDoubleObjectMap<V> select(DoubleObjectPredicate<? super V> predicate);
@Override
MutableDoubleObjectMap<V> reject(DoubleObjectPredicate<? super V> predicate);
MutableDoubleObjectMap<V> withKeyValue(double key, V value);
MutableDoubleObjectMap<V> withoutKey(double key);
MutableDoubleObjectMap<V> withoutAllKeys(DoubleIterable keys);
MutableDoubleObjectMap<V> asUnmodifiable();
MutableDoubleObjectMap<V> asSynchronized();
}