package org.eclipse.collections.api.map.primitive;
import org.eclipse.collections.api.block.function.primitive.FloatFunction;
import org.eclipse.collections.api.block.function.primitive.FloatFunction0;
import org.eclipse.collections.api.block.function.primitive.FloatToFloatFunction;
import org.eclipse.collections.api.block.function.primitive.FloatToObjectFunction;
import org.eclipse.collections.api.block.function.primitive.ObjectFloatToFloatFunction;
import org.eclipse.collections.api.block.predicate.primitive.FloatPredicate;
import org.eclipse.collections.api.block.procedure.primitive.FloatProcedure;
import org.eclipse.collections.api.block.predicate.primitive.ObjectFloatPredicate;
import org.eclipse.collections.api.collection.MutableCollection;
import org.eclipse.collections.api.collection.primitive.MutableFloatCollection;
import org.eclipse.collections.api.iterator.MutableFloatIterator;
import org.eclipse.collections.api.tuple.primitive.ObjectFloatPair;
public interface MutableObjectFloatMap<K> extends ObjectFloatMap<K>
{
@Override
MutableFloatIterator floatIterator();
void clear();
void put(K key, float value);
default void putPair(ObjectFloatPair<K> keyValuePair)
{
this.put(keyValuePair.getOne(), keyValuePair.getTwo());
}
void putAll(ObjectFloatMap<? extends K> map);
void updateValues(ObjectFloatToFloatFunction<? super K> function);
void removeKey(K key);
void remove(Object key);
float removeKeyIfAbsent(K key, float value);
float getIfAbsentPut(K key, float value);
float getIfAbsentPut(K key, FloatFunction0 function);
float getIfAbsentPutWithKey(K key, FloatFunction<? super K> function);
<P> float getIfAbsentPutWith(K key, FloatFunction<? super P> function, P parameter);
float updateValue(K key, float initialValueIfAbsent, FloatToFloatFunction function);
@Override
MutableFloatObjectMap<K> flipUniqueValues();
@Override
MutableObjectFloatMap<K> select(ObjectFloatPredicate<? super K> predicate);
@Override
MutableObjectFloatMap<K> reject(ObjectFloatPredicate<? super K> predicate);
@Override
MutableFloatCollection select(FloatPredicate predicate);
@Override
MutableFloatCollection reject(FloatPredicate predicate);
default MutableObjectFloatMap<K> tap(FloatProcedure procedure)
{
this.forEach(procedure);
return this;
}
@Override
<V> MutableCollection<V> collect(FloatToObjectFunction<? extends V> function);
MutableObjectFloatMap<K> withKeyValue(K key, float value);
MutableObjectFloatMap<K> withoutKey(K key);
MutableObjectFloatMap<K> withoutAllKeys(Iterable<? extends K> keys);
default MutableObjectFloatMap<K> withAllKeyValues(Iterable<ObjectFloatPair<K>> keyValuePairs)
{
for (ObjectFloatPair<K> keyValuePair : keyValuePairs)
{
this.putPair(keyValuePair);
}
return this;
}
MutableObjectFloatMap<K> asUnmodifiable();
MutableObjectFloatMap<K> asSynchronized();
float addToValue(K key, float toBeAdded);
}