/*
 * Copyright (c) 2020 Goldman Sachs and others.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * and Eclipse Distribution License v. 1.0 which accompany this distribution.
 * The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html
 * and the Eclipse Distribution License is available at
 * http://www.eclipse.org/org/documents/edl-v10.php.
 */

package org.eclipse.collections.api.map.primitive;

import org.eclipse.collections.api.block.function.primitive.DoubleFunction;
import org.eclipse.collections.api.block.function.primitive.DoubleFunction0;
import org.eclipse.collections.api.block.function.primitive.DoubleToDoubleFunction;
import org.eclipse.collections.api.block.function.primitive.DoubleToObjectFunction;
import org.eclipse.collections.api.block.function.primitive.ObjectDoubleToDoubleFunction;
import org.eclipse.collections.api.block.predicate.primitive.DoublePredicate;
import org.eclipse.collections.api.block.procedure.primitive.DoubleProcedure;
import org.eclipse.collections.api.block.predicate.primitive.ObjectDoublePredicate;
import org.eclipse.collections.api.collection.MutableCollection;
import org.eclipse.collections.api.collection.primitive.MutableDoubleCollection;
import org.eclipse.collections.api.iterator.MutableDoubleIterator;
import org.eclipse.collections.api.tuple.primitive.ObjectDoublePair;

This file was automatically generated from template file mutableObjectPrimitiveMap.stg.
Since:3.0.
/** * This file was automatically generated from template file mutableObjectPrimitiveMap.stg. * * @since 3.0. */
public interface MutableObjectDoubleMap<K> extends ObjectDoubleMap<K> { @Override MutableDoubleIterator doubleIterator();
Removes all entries from this map.
/** * Removes all entries from this map. */
void clear();
Associates a value with the specified key. If a value is already associated with the key in this map, it will be replaced with value.
Params:
  • key – the key
  • value – the value to associate with value
/** * Associates a value with the specified key. If a value is already associated * with the key in this map, it will be replaced with {@code value}. * @param key the key * @param value the value to associate with {@code value} */
void put(K key, double value);
This method allows MutableObjectDoubleMap the ability to add an element in the form of ObjectDoublePair<K>.
See Also:
Since:9.1.0
/** * This method allows MutableObjectDoubleMap the ability to add an element in the form of {@code ObjectDoublePair<K>}. * * @see #put(Object, double) * @since 9.1.0 */
default void putPair(ObjectDoublePair<K> keyValuePair) { this.put(keyValuePair.getOne(), keyValuePair.getTwo()); }
Puts all of the key/value mappings from the specified map into this map. If this map already has a value associated with one of the keys in the map, it will be replaced with the value in map.
Params:
  • map – the map to copy into this map
/** * Puts all of the key/value mappings from the specified map into this map. If this * map already has a value associated with one of the keys in the map, it will be * replaced with the value in {@code map}. * @param map the map to copy into this map */
void putAll(ObjectDoubleMap<? extends K> map);
Updates the values in-place.
Params:
  • function – that takes a key and its value and that returns a new value for this key
Since:10.0
/** * Updates the values in-place. * * @param function that takes a key and its value and that returns a new value for this key * @since 10.0 */
void updateValues(ObjectDoubleToDoubleFunction<? super K> function);
Removes the mapping associated with the key, if one exists, from the map.
Params:
  • key – the key to remove
See Also:
/** * Removes the mapping associated with the key, if one exists, from the map. * @param key the key to remove * @see #remove(Object) */
void removeKey(K key);
Removes the mapping associated with the key, if one exists, from the map.
Params:
  • key – the key to remove
See Also:
/** * Removes the mapping associated with the key, if one exists, from the map. * @param key the key to remove * @see #removeKey(K) */
void remove(Object key);
Removes the mapping associated with the key, if one exists, from the map, returning the previously associated value with the key. If no mapping existed for the key, the specified default value is returned.
Params:
  • key – the key to remove
  • value – the default value to return if no mapping for the key exists
Returns:the value previously associated with the key, if one existed, or value if not
/** * Removes the mapping associated with the key, if one exists, from the map, * returning the previously associated value with the key. If no mapping * existed for the key, the specified default value is returned. * @param key the key to remove * @param value the default value to return if no mapping for the key exists * @return the value previously associated with the key, if one existed, * or {@code value} if not */
double removeKeyIfAbsent(K key, double value);
Retrieves the value associated with the key if one exists; if it does not, associates a value with the key. a new value with they key
Params:
  • key – the key
  • value – the value to associate with key if no such mapping exists
Returns:the value associated with key, if one exists, or value if not
/** * Retrieves the value associated with the key if one exists; if it does not, * associates a value with the key. * a new value with they key * @param key the key * @param value the value to associate with {@code key} if no such mapping exists * @return the value associated with key, if one exists, or {@code value} if not */
double getIfAbsentPut(K key, double value);
Retrieves the value associated with the key if one exists; if it does not, invokes the supplier and associates the result with the key.
Params:
  • key – the key
  • function – the supplier that provides the value if no mapping exists for key
Returns:the value associated with the key, if one exists, or the result of invoking function if not
/** * Retrieves the value associated with the key if one exists; if it does not, * invokes the supplier and associates the result with the key. * @param key the key * @param function the supplier that provides the value if no mapping exists for {@code key} * @return the value associated with the key, if one exists, or the result of * invoking {@code function} if not */
double getIfAbsentPut(K key, DoubleFunction0 function);
Retrieves the value associated with the key if one exists; if it does not, associates the result of invoking the value function with the key.
Params:
  • key – the key
  • function – the function that provides the value if no mapping exists. The key will be passed as the argument to the function.
Returns:the value associated with the key, if one exists, or the result of invoking function with key if not
/** * Retrieves the value associated with the key if one exists; if it does not, * associates the result of invoking the value function with the key. * @param key the key * @param function the function that provides the value if no mapping exists. * The {@code key} will be passed as the argument to the function. * @return the value associated with the key, if one exists, or the result of * invoking {@code function} with {@code key} if not */
double getIfAbsentPutWithKey(K key, DoubleFunction<? super K> function);
Retrieves the value associated with the key if one exists; if it does not, invokes the value function with the parameter and associates the result with the key.
Params:
  • key – the key
  • function – the function that provides the value if no mapping exists. The specified parameter will be passed as the argument to the function.
  • parameter – the parameter to provide to function if no value exists for key
Type parameters:
  • <P> – the type of the value function's parameter
Returns:the value associated with the key, if one exists, or the result of invoking function with parameter if not
/** * Retrieves the value associated with the key if one exists; if it does not, * invokes the value function with the parameter and associates the result with the key. * @param key the key * @param function the function that provides the value if no mapping exists. * The specified {@code parameter} will be passed as the argument to the function. * @param parameter the parameter to provide to {@code function} if no value * exists for {@code key} * @param <P> the type of the value function's {@code parameter} * @return the value associated with the key, if one exists, or the result of * invoking {@code function} with {@code parameter} if not */
<P> double getIfAbsentPutWith(K key, DoubleFunction<? super P> function, P parameter);
Updates or sets the value associated with the key by applying the function to the existing value, if one exists, or to the specified initial value if one does not.
Params:
  • key – the key
  • initialValueIfAbsent – the initial value to supply to the function if no mapping exists for the key
  • function – the function that returns the updated value based on the current value or the initial value, if no value exists
Returns:the new value associated with the key, either as a result of applying function to the value already associated with the key or as a result of applying it to initialValueIfAbsent and associating the result with key
/** * Updates or sets the value associated with the key by applying the function to the * existing value, if one exists, or to the specified initial value if one does not. * @param key the key * @param initialValueIfAbsent the initial value to supply to the function if no * mapping exists for the key * @param function the function that returns the updated value based on the current * value or the initial value, if no value exists * @return the new value associated with the key, either as a result of applying * {@code function} to the value already associated with the key or as a result of * applying it to {@code initialValueIfAbsent} and associating the result with {@code key} */
double updateValue(K key, double initialValueIfAbsent, DoubleToDoubleFunction function); @Override MutableDoubleObjectMap<K> flipUniqueValues(); @Override MutableObjectDoubleMap<K> select(ObjectDoublePredicate<? super K> predicate); @Override MutableObjectDoubleMap<K> reject(ObjectDoublePredicate<? super K> predicate); @Override MutableDoubleCollection select(DoublePredicate predicate); @Override MutableDoubleCollection reject(DoublePredicate predicate);
Since:9.0.
/** * @since 9.0. */
@Override default MutableObjectDoubleMap<K> tap(DoubleProcedure procedure) { this.forEach(procedure); return this; } @Override <V> MutableCollection<V> collect(DoubleToObjectFunction<? extends V> function);
Associates a value with the specified key. If a value is already associated with the key in this map, it will be replaced with value.
Params:
  • key – the key
  • value – the value to associate with value
See Also:
Returns:this map
/** * Associates a value with the specified key. If a value is already associated * with the key in this map, it will be replaced with {@code value}. * @param key the key * @param value the value to associate with {@code value} * @return this map * @see #put(K, double) */
MutableObjectDoubleMap<K> withKeyValue(K key, double value);
Removes the mapping associated with the key, if one exists, from this map.
Params:
  • key – the key to remove
See Also:
Returns:this map
/** * Removes the mapping associated with the key, if one exists, from this map. * @param key the key to remove * @return this map * @see #remove(Object) */
MutableObjectDoubleMap<K> withoutKey(K key);
Removes the mappings associated with all the keys, if they exist, from this map.
Params:
  • keys – the keys to remove
See Also:
Returns:this map
/** * Removes the mappings associated with all the keys, if they exist, from this map. * @param keys the keys to remove * @return this map * @see #remove(Object) */
MutableObjectDoubleMap<K> withoutAllKeys(Iterable<? extends K> keys); default MutableObjectDoubleMap<K> withAllKeyValues(Iterable<ObjectDoublePair<K>> keyValuePairs) { for (ObjectDoublePair<K> keyValuePair : keyValuePairs) { this.putPair(keyValuePair); } return this; } MutableObjectDoubleMap<K> asUnmodifiable(); MutableObjectDoubleMap<K> asSynchronized(); double addToValue(K key, double toBeAdded); }