public interface EconomicMap<K,V> extends UnmodifiableEconomicMap<K,V>
HashMap, it avoids allocating an extra node object per entry and rather
keeps values always in a plain array. See EconomicMapImpl for implementation details and
exact thresholds when its representation changes.
It supports a null value, but it does not support adding or looking up a null
key. Operations get and put provide constant-time performance on average if
repeatedly performed. They can however trigger an operation growing or compressing the data
structure, which is linear in the number of elements. Iteration is also linear in the number of
elements.
The implementation is not synchronized. If multiple threads want to access the data structure, it
requires manual synchronization, for example using Collections.synchronizedMap(java.util.Map<K, V>).
There is also no extra precaution to detect concurrent modification while iterating.
Different strategies for the equality comparison can be configured by providing a
Equivalence configuration object.| Modifier and Type | Method and Description |
|---|---|
void |
clear()
Removes all of the mappings from this map.
|
static <K,V> EconomicMap<K,V> |
create()
Creates a new map that guarantees insertion order on the key set with the default
Equivalence.DEFAULT comparison strategy for keys. |
static <K,V> EconomicMap<K,V> |
create(Equivalence strategy)
Creates a new map that guarantees insertion order on the key set with the given comparison
strategy for keys.
|
static <K,V> EconomicMap<K,V> |
create(Equivalence strategy,
int initialCapacity)
Creates a new map that guarantees insertion order on the key set and initializes with a
specified capacity.
|
static <K,V> EconomicMap<K,V> |
create(Equivalence strategy,
UnmodifiableEconomicMap<K,V> m)
Creates a new map that guarantees insertion order on the key set and copies all elements from
the specified existing map.
|
static <K,V> EconomicMap<K,V> |
create(int initialCapacity)
Creates a new map that guarantees insertion order on the key set with the default
Equivalence.DEFAULT comparison strategy for keys and initializes with a specified
capacity. |
static <K,V> EconomicMap<K,V> |
create(UnmodifiableEconomicMap<K,V> m)
Creates a new map that guarantees insertion order on the key set with the default
Equivalence.DEFAULT comparison strategy for keys and copies all elements from the
specified existing map. |
MapCursor<K,V> |
getEntries()
Returns a
MapCursor view of the mappings contained in this map. |
V |
put(K key,
V value)
Associates
value with key in this map. |
default void |
putAll(EconomicMap<K,V> other)
Copies all of the mappings from
other to this map. |
default void |
putAll(UnmodifiableEconomicMap<? extends K,? extends V> other)
Copies all of the mappings from
other to this map. |
default V |
putIfAbsent(K key,
V value)
If the specified key is not already associated with a value (or is mapped to
null)
associates it with the given value and returns null, else returns the current value. |
V |
removeKey(K key)
Removes the mapping for
key from this map if it is present. |
void |
replaceAll(BiFunction<? super K,? super V,? extends V> function)
Replaces each entry's value with the result of invoking
function on that entry until
all entries have been processed or the function throws an exception. |
static <K,V> EconomicMap<K,V> |
wrapMap(Map<K,V> map)
Wraps an existing
Map as an EconomicMap. |
containsKey, get, get, getKeys, getValues, isEmpty, sizeV put(K key, V value)
value with key in this map. If the map previously contained a
mapping for key, the old value is replaced by value. While the value
may be null, the key must not be {code null}.key, or null if there was no
mapping for key.default V putIfAbsent(K key, V value)
null)
associates it with the given value and returns null, else returns the current value.key - key with which the specified value is to be associatedvalue - value to be associated with the specified keynull if there was no
mapping for the key. (A null return can also indicate that the map previously
associated null with the key, if the implementation supports null values.)default void putAll(EconomicMap<K,V> other)
other to this map.default void putAll(UnmodifiableEconomicMap<? extends K,? extends V> other)
other to this map.void clear()
V removeKey(K key)
key from this map if it is present. The map will not contain
a mapping for key once the call returns. The key must not be null.key, or null if there was no
mapping for key.MapCursor<K,V> getEntries()
MapCursor view of the mappings contained in this map.getEntries in interface UnmodifiableEconomicMap<K,V>void replaceAll(BiFunction<? super K,? super V,? extends V> function)
function on that entry until
all entries have been processed or the function throws an exception. Exceptions thrown by the
function are relayed to the caller.static <K,V> EconomicMap<K,V> create()
Equivalence.DEFAULT comparison strategy for keys.static <K,V> EconomicMap<K,V> create(int initialCapacity)
Equivalence.DEFAULT comparison strategy for keys and initializes with a specified
capacity.static <K,V> EconomicMap<K,V> create(Equivalence strategy)
static <K,V> EconomicMap<K,V> create(UnmodifiableEconomicMap<K,V> m)
Equivalence.DEFAULT comparison strategy for keys and copies all elements from the
specified existing map.static <K,V> EconomicMap<K,V> create(Equivalence strategy, UnmodifiableEconomicMap<K,V> m)
static <K,V> EconomicMap<K,V> create(Equivalence strategy, int initialCapacity)
static <K,V> EconomicMap<K,V> wrapMap(Map<K,V> map)
Map as an EconomicMap.