package org.eclipse.collections.api.map.primitive;
import org.eclipse.collections.api.block.function.primitive.IntFunction;
import org.eclipse.collections.api.block.function.primitive.IntFunction0;
import org.eclipse.collections.api.block.function.primitive.IntToIntFunction;
import org.eclipse.collections.api.block.function.primitive.IntToObjectFunction;
import org.eclipse.collections.api.block.predicate.primitive.IntPredicate;
import org.eclipse.collections.api.block.procedure.primitive.IntProcedure;
import org.eclipse.collections.api.block.predicate.primitive.ObjectIntPredicate;
import org.eclipse.collections.api.collection.MutableCollection;
import org.eclipse.collections.api.collection.primitive.MutableIntCollection;
import org.eclipse.collections.api.iterator.MutableIntIterator;
import org.eclipse.collections.api.tuple.primitive.ObjectIntPair;
public interface MutableObjectIntMap<K> extends ObjectIntMap<K>
{
@Override
MutableIntIterator intIterator();
void clear();
void put(K key, int value);
default void putPair(ObjectIntPair<K> keyValuePair)
{
this.put(keyValuePair.getOne(), keyValuePair.getTwo());
}
void putAll(ObjectIntMap<? extends K> map);
void removeKey(K key);
void remove(Object key);
int removeKeyIfAbsent(K key, int value);
int getIfAbsentPut(K key, int value);
int getIfAbsentPut(K key, IntFunction0 function);
int getIfAbsentPutWithKey(K key, IntFunction<? super K> function);
<P> int getIfAbsentPutWith(K key, IntFunction<? super P> function, P parameter);
int updateValue(K key, int initialValueIfAbsent, IntToIntFunction function);
@Override
MutableIntObjectMap<K> flipUniqueValues();
@Override
MutableObjectIntMap<K> select(ObjectIntPredicate<? super K> predicate);
@Override
MutableObjectIntMap<K> reject(ObjectIntPredicate<? super K> predicate);
@Override
MutableIntCollection select(IntPredicate predicate);
@Override
MutableIntCollection reject(IntPredicate predicate);
default MutableObjectIntMap<K> tap(IntProcedure procedure)
{
this.forEach(procedure);
return this;
}
@Override
<V> MutableCollection<V> collect(IntToObjectFunction<? extends V> function);
MutableObjectIntMap<K> withKeyValue(K key, int value);
MutableObjectIntMap<K> withoutKey(K key);
MutableObjectIntMap<K> withoutAllKeys(Iterable<? extends K> keys);
MutableObjectIntMap<K> asUnmodifiable();
MutableObjectIntMap<K> asSynchronized();
int addToValue(K key, int toBeAdded);
}