package org.eclipse.collections.api.map.primitive;
import org.eclipse.collections.api.ByteIterable;
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.ByteToObjectFunction;
import org.eclipse.collections.api.block.predicate.primitive.ByteObjectPredicate;
import org.eclipse.collections.api.block.procedure.Procedure;
import org.eclipse.collections.api.tuple.primitive.ByteObjectPair;
public interface MutableByteObjectMap<V> extends ByteObjectMap<V>, MutablePrimitiveObjectMap<V>
{
V put(byte key, V value);
default V putPair(ByteObjectPair<V> keyValuePair)
{
return this.put(keyValuePair.getOne(), keyValuePair.getTwo());
}
void putAll(ByteObjectMap<? extends V> map);
V removeKey(byte key);
V remove(byte key);
V getIfAbsentPut(byte key, V value);
V getIfAbsentPut(byte key, Function0<? extends V> function);
V getIfAbsentPutWithKey(byte key, ByteToObjectFunction<? extends V> function);
<P> V getIfAbsentPutWith(byte key, Function<? super P, ? extends V> function, P parameter);
V updateValue(byte key, Function0<? extends V> factory, Function<? super V, ? extends V> function);
<P> V updateValueWith(byte key, Function0<? extends V> factory, Function2<? super V, ? super P, ? extends V> function, P parameter);
@Override
MutableObjectByteMap<V> flipUniqueValues();
@Override
MutableByteObjectMap<V> tap(Procedure<? super V> procedure);
@Override
MutableByteObjectMap<V> select(ByteObjectPredicate<? super V> predicate);
@Override
MutableByteObjectMap<V> reject(ByteObjectPredicate<? super V> predicate);
MutableByteObjectMap<V> withKeyValue(byte key, V value);
MutableByteObjectMap<V> withoutKey(byte key);
MutableByteObjectMap<V> withoutAllKeys(ByteIterable keys);
default MutableByteObjectMap<V> withAllKeyValues(Iterable<ByteObjectPair<V>> keyValuePairs)
{
for (ByteObjectPair<V> keyValuePair : keyValuePairs)
{
this.putPair(keyValuePair);
}
return this;
}
MutableByteObjectMap<V> asUnmodifiable();
MutableByteObjectMap<V> asSynchronized();
}