com.koloboke.collect.map
Interface ObjObjMapFactory<K,V,F extends ObjObjMapFactory<K,V,F>>

Type Parameters:
K - the most general key type of the maps that could be constructed by this factory
V - the most general value type of the maps that could be constructed by this factory
F - the concrete factory type which extends this interface
All Superinterfaces:
ContainerFactory<F>
All Known Subinterfaces:
HashObjObjMapFactory<K,V>

public interface ObjObjMapFactory<K,V,F extends ObjObjMapFactory<K,V,F>>
extends ContainerFactory<F>

An immutable factory of ObjObjMaps.

See Also:
ObjObjMap, @KolobokeMap

Method Summary
 Equivalence<K> getKeyEquivalence()
          Returns the equivalence to which key equivalence of the maps constructed by this factory is set.
 Equivalence<V> getValueEquivalence()
          Returns the equivalence to which value equivalence of the maps constructed by this factory is set.
<K2 extends K,V2 extends V>
ObjObjMap<K2,V2>
newImmutableMap(Consumer<BiConsumer<K2,V2>> entriesSupplier)
          Constructs a new immutable map filled with mappings consumed by the callback within the given closure.
<K2 extends K,V2 extends V>
ObjObjMap<K2,V2>
newImmutableMap(Consumer<BiConsumer<K2,V2>> entriesSupplier, int expectedSize)
          Constructs a new immutable map filled with mappings consumed by the callback within the given closure.
<K2 extends K,V2 extends V>
ObjObjMap<K2,V2>
newImmutableMap(Iterable<? extends K2> keys, Iterable<? extends V2> values)
          Constructs a new immutable map with the given mappings, i. e. pairs of elements from the keys and values iterables at the same iteration position.
<K2 extends K,V2 extends V>
ObjObjMap<K2,V2>
newImmutableMap(Iterable<? extends K2> keys, Iterable<? extends V2> values, int expectedSize)
          Constructs a new immutable map with the given mappings, i. e. pairs of elements from the keys and values iterables at the same iteration position.
<K2 extends K,V2 extends V>
ObjObjMap<K2,V2>
newImmutableMap(K2[] keys, V2[] values)
          Constructs a new immutable map with the given mappings, i. e. pairs of elements from the keys and values arrays at the same index.
<K2 extends K,V2 extends V>
ObjObjMap<K2,V2>
newImmutableMap(K2[] keys, V2[] values, int expectedSize)
          Constructs a new immutable map with the given mappings, i. e. pairs of elements from the keys and values arrays at the same index.
<K2 extends K,V2 extends V>
ObjObjMap<K2,V2>
newImmutableMap(Map<? extends K2,? extends V2> map)
          Constructs a new immutable map with the same mappings as the specified map.
<K2 extends K,V2 extends V>
ObjObjMap<K2,V2>
newImmutableMap(Map<? extends K2,? extends V2> map, int expectedSize)
          Constructs a new immutable map with the same mappings as the specified map.
<K2 extends K,V2 extends V>
ObjObjMap<K2,V2>
newImmutableMap(Map<? extends K2,? extends V2> map1, Map<? extends K2,? extends V2> map2)
          Constructs a new immutable map which merge the mappings of the specified maps.
<K2 extends K,V2 extends V>
ObjObjMap<K2,V2>
newImmutableMap(Map<? extends K2,? extends V2> map1, Map<? extends K2,? extends V2> map2, int expectedSize)
          Constructs a new immutable map which merge the mappings of the specified maps.
<K2 extends K,V2 extends V>
ObjObjMap<K2,V2>
newImmutableMap(Map<? extends K2,? extends V2> map1, Map<? extends K2,? extends V2> map2, Map<? extends K2,? extends V2> map3)
          Constructs a new immutable map which merge the mappings of the specified maps.
<K2 extends K,V2 extends V>
ObjObjMap<K2,V2>
newImmutableMap(Map<? extends K2,? extends V2> map1, Map<? extends K2,? extends V2> map2, Map<? extends K2,? extends V2> map3, int expectedSize)
          Constructs a new immutable map which merge the mappings of the specified maps.
<K2 extends K,V2 extends V>
ObjObjMap<K2,V2>
newImmutableMap(Map<? extends K2,? extends V2> map1, Map<? extends K2,? extends V2> map2, Map<? extends K2,? extends V2> map3, Map<? extends K2,? extends V2> map4)
          Constructs a new immutable map which merge the mappings of the specified maps.
<K2 extends K,V2 extends V>
ObjObjMap<K2,V2>
newImmutableMap(Map<? extends K2,? extends V2> map1, Map<? extends K2,? extends V2> map2, Map<? extends K2,? extends V2> map3, Map<? extends K2,? extends V2> map4, int expectedSize)
          Constructs a new immutable map which merge the mappings of the specified maps.
<K2 extends K,V2 extends V>
ObjObjMap<K2,V2>
newImmutableMap(Map<? extends K2,? extends V2> map1, Map<? extends K2,? extends V2> map2, Map<? extends K2,? extends V2> map3, Map<? extends K2,? extends V2> map4, Map<? extends K2,? extends V2> map5)
          Constructs a new immutable map which merge the mappings of the specified maps.
<K2 extends K,V2 extends V>
ObjObjMap<K2,V2>
newImmutableMap(Map<? extends K2,? extends V2> map1, Map<? extends K2,? extends V2> map2, Map<? extends K2,? extends V2> map3, Map<? extends K2,? extends V2> map4, Map<? extends K2,? extends V2> map5, int expectedSize)
          Constructs a new immutable map which merge the mappings of the specified maps.
<K2 extends K,V2 extends V>
ObjObjMap<K2,V2>
newImmutableMapOf(K2 k1, V2 v1)
          Constructs a new immutable map of the single specified mapping.
<K2 extends K,V2 extends V>
ObjObjMap<K2,V2>
newImmutableMapOf(K2 k1, V2 v1, K2 k2, V2 v2)
          Constructs a new immutable map of the two specified mappings.
<K2 extends K,V2 extends V>
ObjObjMap<K2,V2>
newImmutableMapOf(K2 k1, V2 v1, K2 k2, V2 v2, K2 k3, V2 v3)
          Constructs a new immutable map of the three specified mappings.
<K2 extends K,V2 extends V>
ObjObjMap<K2,V2>
newImmutableMapOf(K2 k1, V2 v1, K2 k2, V2 v2, K2 k3, V2 v3, K2 k4, V2 v4)
          Constructs a new immutable map of the four specified mappings.
<K2 extends K,V2 extends V>
ObjObjMap<K2,V2>
newImmutableMapOf(K2 k1, V2 v1, K2 k2, V2 v2, K2 k3, V2 v3, K2 k4, V2 v4, K2 k5, V2 v5)
          Constructs a new immutable map of the five specified mappings.
<K2 extends K,V2 extends V>
ObjObjMap<K2,V2>
newMutableMap()
          Constructs a new empty mutable map of the default expected size.
<K2 extends K,V2 extends V>
ObjObjMap<K2,V2>
newMutableMap(Consumer<BiConsumer<K2,V2>> entriesSupplier)
          Constructs a new mutable map filled with mappings consumed by the callback within the given closure.
<K2 extends K,V2 extends V>
ObjObjMap<K2,V2>
newMutableMap(Consumer<BiConsumer<K2,V2>> entriesSupplier, int expectedSize)
          Constructs a new mutable map filled with mappings consumed by the callback within the given closure.
<K2 extends K,V2 extends V>
ObjObjMap<K2,V2>
newMutableMap(int expectedSize)
          Constructs a new empty mutable map of the given expected size.
<K2 extends K,V2 extends V>
ObjObjMap<K2,V2>
newMutableMap(Iterable<? extends K2> keys, Iterable<? extends V2> values)
          Constructs a new mutable map with the given mappings, i. e. pairs of elements from the keys and values iterables at the same iteration position.
<K2 extends K,V2 extends V>
ObjObjMap<K2,V2>
newMutableMap(Iterable<? extends K2> keys, Iterable<? extends V2> values, int expectedSize)
          Constructs a new mutable map with the given mappings, i. e. pairs of elements from the keys and values iterables at the same iteration position.
<K2 extends K,V2 extends V>
ObjObjMap<K2,V2>
newMutableMap(K2[] keys, V2[] values)
          Constructs a new mutable map with the given mappings, i. e. pairs of elements from the keys and values arrays at the same index.
<K2 extends K,V2 extends V>
ObjObjMap<K2,V2>
newMutableMap(K2[] keys, V2[] values, int expectedSize)
          Constructs a new mutable map with the given mappings, i. e. pairs of elements from the keys and values arrays at the same index.
<K2 extends K,V2 extends V>
ObjObjMap<K2,V2>
newMutableMap(Map<? extends K2,? extends V2> map)
          Constructs a new mutable map with the same mappings as the specified map.
<K2 extends K,V2 extends V>
ObjObjMap<K2,V2>
newMutableMap(Map<? extends K2,? extends V2> map, int expectedSize)
          Constructs a new mutable map with the same mappings as the specified map.
<K2 extends K,V2 extends V>
ObjObjMap<K2,V2>
newMutableMap(Map<? extends K2,? extends V2> map1, Map<? extends K2,? extends V2> map2)
          Constructs a new mutable map which merge the mappings of the specified maps.
<K2 extends K,V2 extends V>
ObjObjMap<K2,V2>
newMutableMap(Map<? extends K2,? extends V2> map1, Map<? extends K2,? extends V2> map2, int expectedSize)
          Constructs a new mutable map which merge the mappings of the specified maps.
<K2 extends K,V2 extends V>
ObjObjMap<K2,V2>
newMutableMap(Map<? extends K2,? extends V2> map1, Map<? extends K2,? extends V2> map2, Map<? extends K2,? extends V2> map3)
          Constructs a new mutable map which merge the mappings of the specified maps.
<K2 extends K,V2 extends V>
ObjObjMap<K2,V2>
newMutableMap(Map<? extends K2,? extends V2> map1, Map<? extends K2,? extends V2> map2, Map<? extends K2,? extends V2> map3, int expectedSize)
          Constructs a new mutable map which merge the mappings of the specified maps.
<K2 extends K,V2 extends V>
ObjObjMap<K2,V2>
newMutableMap(Map<? extends K2,? extends V2> map1, Map<? extends K2,? extends V2> map2, Map<? extends K2,? extends V2> map3, Map<? extends K2,? extends V2> map4)
          Constructs a new mutable map which merge the mappings of the specified maps.
<K2 extends K,V2 extends V>
ObjObjMap<K2,V2>
newMutableMap(Map<? extends K2,? extends V2> map1, Map<? extends K2,? extends V2> map2, Map<? extends K2,? extends V2> map3, Map<? extends K2,? extends V2> map4, int expectedSize)
          Constructs a new mutable map which merge the mappings of the specified maps.
<K2 extends K,V2 extends V>
ObjObjMap<K2,V2>
newMutableMap(Map<? extends K2,? extends V2> map1, Map<? extends K2,? extends V2> map2, Map<? extends K2,? extends V2> map3, Map<? extends K2,? extends V2> map4, Map<? extends K2,? extends V2> map5)
          Constructs a new mutable map which merge the mappings of the specified maps.
<K2 extends K,V2 extends V>
ObjObjMap<K2,V2>
newMutableMap(Map<? extends K2,? extends V2> map1, Map<? extends K2,? extends V2> map2, Map<? extends K2,? extends V2> map3, Map<? extends K2,? extends V2> map4, Map<? extends K2,? extends V2> map5, int expectedSize)
          Constructs a new mutable map which merge the mappings of the specified maps.
<K2 extends K,V2 extends V>
ObjObjMap<K2,V2>
newMutableMapOf(K2 k1, V2 v1)
          Constructs a new mutable map of the single specified mapping.
<K2 extends K,V2 extends V>
ObjObjMap<K2,V2>
newMutableMapOf(K2 k1, V2 v1, K2 k2, V2 v2)
          Constructs a new mutable map of the two specified mappings.
<K2 extends K,V2 extends V>
ObjObjMap<K2,V2>
newMutableMapOf(K2 k1, V2 v1, K2 k2, V2 v2, K2 k3, V2 v3)
          Constructs a new mutable map of the three specified mappings.
<K2 extends K,V2 extends V>
ObjObjMap<K2,V2>
newMutableMapOf(K2 k1, V2 v1, K2 k2, V2 v2, K2 k3, V2 v3, K2 k4, V2 v4)
          Constructs a new mutable map of the four specified mappings.
<K2 extends K,V2 extends V>
ObjObjMap<K2,V2>
newMutableMapOf(K2 k1, V2 v1, K2 k2, V2 v2, K2 k3, V2 v3, K2 k4, V2 v4, K2 k5, V2 v5)
          Constructs a new mutable map of the five specified mappings.
<K2 extends K,V2 extends V>
ObjObjMap<K2,V2>
newUpdatableMap()
          Constructs a new empty updatable map of the default expected size.
<K2 extends K,V2 extends V>
ObjObjMap<K2,V2>
newUpdatableMap(Consumer<BiConsumer<K2,V2>> entriesSupplier)
          Constructs a new updatable map filled with mappings consumed by the callback within the given closure.
<K2 extends K,V2 extends V>
ObjObjMap<K2,V2>
newUpdatableMap(Consumer<BiConsumer<K2,V2>> entriesSupplier, int expectedSize)
          Constructs a new updatable map filled with mappings consumed by the callback within the given closure.
<K2 extends K,V2 extends V>
ObjObjMap<K2,V2>
newUpdatableMap(int expectedSize)
          Constructs a new empty updatable map of the given expected size.
<K2 extends K,V2 extends V>
ObjObjMap<K2,V2>
newUpdatableMap(Iterable<? extends K2> keys, Iterable<? extends V2> values)
          Constructs a new updatable map with the given mappings, i. e. pairs of elements from the keys and values iterables at the same iteration position.
<K2 extends K,V2 extends V>
ObjObjMap<K2,V2>
newUpdatableMap(Iterable<? extends K2> keys, Iterable<? extends V2> values, int expectedSize)
          Constructs a new updatable map with the given mappings, i. e. pairs of elements from the keys and values iterables at the same iteration position.
<K2 extends K,V2 extends V>
ObjObjMap<K2,V2>
newUpdatableMap(K2[] keys, V2[] values)
          Constructs a new updatable map with the given mappings, i. e. pairs of elements from the keys and values arrays at the same index.
<K2 extends K,V2 extends V>
ObjObjMap<K2,V2>
newUpdatableMap(K2[] keys, V2[] values, int expectedSize)
          Constructs a new updatable map with the given mappings, i. e. pairs of elements from the keys and values arrays at the same index.
<K2 extends K,V2 extends V>
ObjObjMap<K2,V2>
newUpdatableMap(Map<? extends K2,? extends V2> map)
          Constructs a new updatable map with the same mappings as the specified map.
<K2 extends K,V2 extends V>
ObjObjMap<K2,V2>
newUpdatableMap(Map<? extends K2,? extends V2> map, int expectedSize)
          Constructs a new updatable map with the same mappings as the specified map.
<K2 extends K,V2 extends V>
ObjObjMap<K2,V2>
newUpdatableMap(Map<? extends K2,? extends V2> map1, Map<? extends K2,? extends V2> map2)
          Constructs a new updatable map which merge the mappings of the specified maps.
<K2 extends K,V2 extends V>
ObjObjMap<K2,V2>
newUpdatableMap(Map<? extends K2,? extends V2> map1, Map<? extends K2,? extends V2> map2, int expectedSize)
          Constructs a new updatable map which merge the mappings of the specified maps.
<K2 extends K,V2 extends V>
ObjObjMap<K2,V2>
newUpdatableMap(Map<? extends K2,? extends V2> map1, Map<? extends K2,? extends V2> map2, Map<? extends K2,? extends V2> map3)
          Constructs a new updatable map which merge the mappings of the specified maps.
<K2 extends K,V2 extends V>
ObjObjMap<K2,V2>
newUpdatableMap(Map<? extends K2,? extends V2> map1, Map<? extends K2,? extends V2> map2, Map<? extends K2,? extends V2> map3, int expectedSize)
          Constructs a new updatable map which merge the mappings of the specified maps.
<K2 extends K,V2 extends V>
ObjObjMap<K2,V2>
newUpdatableMap(Map<? extends K2,? extends V2> map1, Map<? extends K2,? extends V2> map2, Map<? extends K2,? extends V2> map3, Map<? extends K2,? extends V2> map4)
          Constructs a new updatable map which merge the mappings of the specified maps.
<K2 extends K,V2 extends V>
ObjObjMap<K2,V2>
newUpdatableMap(Map<? extends K2,? extends V2> map1, Map<? extends K2,? extends V2> map2, Map<? extends K2,? extends V2> map3, Map<? extends K2,? extends V2> map4, int expectedSize)
          Constructs a new updatable map which merge the mappings of the specified maps.
<K2 extends K,V2 extends V>
ObjObjMap<K2,V2>
newUpdatableMap(Map<? extends K2,? extends V2> map1, Map<? extends K2,? extends V2> map2, Map<? extends K2,? extends V2> map3, Map<? extends K2,? extends V2> map4, Map<? extends K2,? extends V2> map5)
          Constructs a new updatable map which merge the mappings of the specified maps.
<K2 extends K,V2 extends V>
ObjObjMap<K2,V2>
newUpdatableMap(Map<? extends K2,? extends V2> map1, Map<? extends K2,? extends V2> map2, Map<? extends K2,? extends V2> map3, Map<? extends K2,? extends V2> map4, Map<? extends K2,? extends V2> map5, int expectedSize)
          Constructs a new updatable map which merge the mappings of the specified maps.
<K2 extends K,V2 extends V>
ObjObjMap<K2,V2>
newUpdatableMapOf(K2 k1, V2 v1)
          Constructs a new updatable map of the single specified mapping.
<K2 extends K,V2 extends V>
ObjObjMap<K2,V2>
newUpdatableMapOf(K2 k1, V2 v1, K2 k2, V2 v2)
          Constructs a new updatable map of the two specified mappings.
<K2 extends K,V2 extends V>
ObjObjMap<K2,V2>
newUpdatableMapOf(K2 k1, V2 v1, K2 k2, V2 v2, K2 k3, V2 v3)
          Constructs a new updatable map of the three specified mappings.
<K2 extends K,V2 extends V>
ObjObjMap<K2,V2>
newUpdatableMapOf(K2 k1, V2 v1, K2 k2, V2 v2, K2 k3, V2 v3, K2 k4, V2 v4)
          Constructs a new updatable map of the four specified mappings.
<K2 extends K,V2 extends V>
ObjObjMap<K2,V2>
newUpdatableMapOf(K2 k1, V2 v1, K2 k2, V2 v2, K2 k3, V2 v3, K2 k4, V2 v4, K2 k5, V2 v5)
          Constructs a new updatable map of the five specified mappings.
 F withValueEquivalence(Equivalence<? super V> valueEquivalence)
          Returns a copy of this factory, with exception that it constructs maps with value equivalence set to the given Equivalence.
 
Methods inherited from interface com.koloboke.collect.ContainerFactory
getDefaultExpectedSize, withDefaultExpectedSize
 

Method Detail

getKeyEquivalence

@Nonnull
Equivalence<K> getKeyEquivalence()
Returns the equivalence to which key equivalence of the maps constructed by this factory is set.

Returns:
the key equivalence of the maps constructed by this factory

getValueEquivalence

@Nonnull
Equivalence<V> getValueEquivalence()
Returns the equivalence to which value equivalence of the maps constructed by this factory is set. Defaults to Equivalence.defaultEquality().

Returns:
the value equivalence of the maps constructed by this factory

withValueEquivalence

@Nonnull
F withValueEquivalence(@Nonnull
                               Equivalence<? super V> valueEquivalence)
Returns a copy of this factory, with exception that it constructs maps with value equivalence set to the given Equivalence.

Parameters:
valueEquivalence - the new value equivalence
Returns:
a copy of this factory, which constructs maps with the given valueEquivalence

newMutableMap

@Nonnull
<K2 extends K,V2 extends V> ObjObjMap<K2,V2> newMutableMap()
Constructs a new empty mutable map of the default expected size.

Type Parameters:
K2 - the key type of the returned map
V2 - the value type of the returned map
Returns:
a new empty mutable map

newMutableMap

@Nonnull
<K2 extends K,V2 extends V> ObjObjMap<K2,V2> newMutableMap(int expectedSize)
Constructs a new empty mutable map of the given expected size.

Type Parameters:
K2 - the key type of the returned map
V2 - the value type of the returned map
Parameters:
expectedSize - the expected size of the returned map
Returns:
a new empty mutable map of the given expected size

newMutableMap

@Nonnull
<K2 extends K,V2 extends V> ObjObjMap<K2,V2> newMutableMap(@Nonnull
                                                                   Map<? extends K2,? extends V2> map,
                                                                   int expectedSize)
Constructs a new mutable map with the same mappings as the specified map.

If the specified map is an instance of ObjObjMap and has the same key equivalence with this factory (and thus the constructed map), the expectedSize argument is ignored.

Type Parameters:
K2 - the key type of the returned map
V2 - the value type of the returned map
Parameters:
map - the map whose mappings are to be placed in the returned map
expectedSize - the expected size of the returned map
Returns:
a new mutable map with the same mappings as the specified map

newMutableMap

@Nonnull
<K2 extends K,V2 extends V> ObjObjMap<K2,V2> newMutableMap(@Nonnull
                                                                   Map<? extends K2,? extends V2> map1,
                                                                   @Nonnull
                                                                   Map<? extends K2,? extends V2> map2,
                                                                   int expectedSize)
Constructs a new mutable map which merge the mappings of the specified maps. On conflict, mappings from the map2 have priority over mappings from the map1 with the same keys.

Type Parameters:
K2 - the key type of the returned map
V2 - the value type of the returned map
Parameters:
map1 - the first map to merge
map2 - the second map to merge
expectedSize - the expected size of the returned map
Returns:
a new mutable map which merge the mappings of the specified maps

newMutableMap

@Nonnull
<K2 extends K,V2 extends V> ObjObjMap<K2,V2> newMutableMap(@Nonnull
                                                                   Map<? extends K2,? extends V2> map1,
                                                                   @Nonnull
                                                                   Map<? extends K2,? extends V2> map2,
                                                                   @Nonnull
                                                                   Map<? extends K2,? extends V2> map3,
                                                                   int expectedSize)
Constructs a new mutable map which merge the mappings of the specified maps. On conflict, mappings from the maps passed later in the argument list have priority over mappings from the maps passed earlier with the same keys.

Type Parameters:
K2 - the key type of the returned map
V2 - the value type of the returned map
Parameters:
map1 - the first map to merge
map2 - the second map to merge
map3 - the third map to merge
expectedSize - the expected size of the returned map
Returns:
a new mutable map which merge the mappings of the specified maps

newMutableMap

@Nonnull
<K2 extends K,V2 extends V> ObjObjMap<K2,V2> newMutableMap(@Nonnull
                                                                   Map<? extends K2,? extends V2> map1,
                                                                   @Nonnull
                                                                   Map<? extends K2,? extends V2> map2,
                                                                   @Nonnull
                                                                   Map<? extends K2,? extends V2> map3,
                                                                   @Nonnull
                                                                   Map<? extends K2,? extends V2> map4,
                                                                   int expectedSize)
Constructs a new mutable map which merge the mappings of the specified maps. On conflict, mappings from the maps passed later in the argument list have priority over mappings from the maps passed earlier with the same keys.

Type Parameters:
K2 - the key type of the returned map
V2 - the value type of the returned map
Parameters:
map1 - the first map to merge
map2 - the second map to merge
map3 - the third map to merge
map4 - the fourth map to merge
expectedSize - the expected size of the returned map
Returns:
a new mutable map which merge the mappings of the specified maps

newMutableMap

@Nonnull
<K2 extends K,V2 extends V> ObjObjMap<K2,V2> newMutableMap(@Nonnull
                                                                   Map<? extends K2,? extends V2> map1,
                                                                   @Nonnull
                                                                   Map<? extends K2,? extends V2> map2,
                                                                   @Nonnull
                                                                   Map<? extends K2,? extends V2> map3,
                                                                   @Nonnull
                                                                   Map<? extends K2,? extends V2> map4,
                                                                   @Nonnull
                                                                   Map<? extends K2,? extends V2> map5,
                                                                   int expectedSize)
Constructs a new mutable map which merge the mappings of the specified maps. On conflict, mappings from the maps passed later in the argument list have priority over mappings from the maps passed earlier with the same keys.

Type Parameters:
K2 - the key type of the returned map
V2 - the value type of the returned map
Parameters:
map1 - the first map to merge
map2 - the second map to merge
map3 - the third map to merge
map4 - the fourth map to merge
map5 - the fifth map to merge
expectedSize - the expected size of the returned map
Returns:
a new mutable map which merge the mappings of the specified maps

newMutableMap

@Nonnull
<K2 extends K,V2 extends V> ObjObjMap<K2,V2> newMutableMap(@Nonnull
                                                                   Consumer<BiConsumer<K2,V2>> entriesSupplier,
                                                                   int expectedSize)
Constructs a new mutable map filled with mappings consumed by the callback within the given closure. Mappings supplied later within the closure have priority over the mappings passed earlier with the same keys.

Example: TODO

Type Parameters:
K2 - the key type of the returned map
V2 - the value type of the returned map
Parameters:
entriesSupplier - the function which supply mappings for the returned map via the callback passed in
expectedSize - the expected size of the returned map
Returns:
a new mutable map with mappings consumed by the callback within the given closure

newMutableMap

@Nonnull
<K2 extends K,V2 extends V> ObjObjMap<K2,V2> newMutableMap(@Nonnull
                                                                   K2[] keys,
                                                                   @Nonnull
                                                                   V2[] values,
                                                                   int expectedSize)
Constructs a new mutable map with the given mappings, i. e. pairs of elements from the keys and values arrays at the same index. If keys array have duplicate elements, value corresponding the key with the highest index is left in the returned map.

Type Parameters:
K2 - the key type of the returned map
V2 - the value type of the returned map
Parameters:
keys - the keys of the returned map
values - the values of the returned map, each value is associated with the element of the keys array at the same index
expectedSize - the expected size of the returned map
Returns:
a new mutable map with the given mappings
Throws:
IllegalArgumentException - if keys and values arrays have different length

newMutableMap

@Nonnull
<K2 extends K,V2 extends V> ObjObjMap<K2,V2> newMutableMap(@Nonnull
                                                                   Iterable<? extends K2> keys,
                                                                   @Nonnull
                                                                   Iterable<? extends V2> values,
                                                                   int expectedSize)
Constructs a new mutable map with the given mappings, i. e. pairs of elements from the keys and values iterables at the same iteration position. If keys have duplicate elements, value corresponding the key appeared last in the iteration is left in the returned map.

Type Parameters:
K2 - the key type of the returned map
V2 - the value type of the returned map
Parameters:
keys - the keys of the returned map
values - the values of the returned map, each value is associated with the element of the keys iterable at the same iteration position
expectedSize - the expected size of the returned map
Returns:
a new mutable map with the given mappings
Throws:
IllegalArgumentException - if keys and values have different size

newMutableMap

@Nonnull
<K2 extends K,V2 extends V> ObjObjMap<K2,V2> newMutableMap(@Nonnull
                                                                   Map<? extends K2,? extends V2> map)
Constructs a new mutable map with the same mappings as the specified map.

Type Parameters:
K2 - the key type of the returned map
V2 - the value type of the returned map
Parameters:
map - the map whose mappings are to be placed in the returned map
Returns:
a new mutable map with the same mappings as the specified map

newMutableMap

@Nonnull
<K2 extends K,V2 extends V> ObjObjMap<K2,V2> newMutableMap(@Nonnull
                                                                   Map<? extends K2,? extends V2> map1,
                                                                   @Nonnull
                                                                   Map<? extends K2,? extends V2> map2)
Constructs a new mutable map which merge the mappings of the specified maps. On conflict, mappings from the map2 have priority over mappings from the map1 with the same keys.

Type Parameters:
K2 - the key type of the returned map
V2 - the value type of the returned map
Parameters:
map1 - the first map to merge
map2 - the second map to merge
Returns:
a new mutable map which merge the mappings of the specified maps

newMutableMap

@Nonnull
<K2 extends K,V2 extends V> ObjObjMap<K2,V2> newMutableMap(@Nonnull
                                                                   Map<? extends K2,? extends V2> map1,
                                                                   @Nonnull
                                                                   Map<? extends K2,? extends V2> map2,
                                                                   @Nonnull
                                                                   Map<? extends K2,? extends V2> map3)
Constructs a new mutable map which merge the mappings of the specified maps. On conflict, mappings from the maps passed later in the argument list have priority over mappings from the maps passed earlier with the same keys.

Type Parameters:
K2 - the key type of the returned map
V2 - the value type of the returned map
Parameters:
map1 - the first map to merge
map2 - the second map to merge
map3 - the third map to merge
Returns:
a new mutable map which merge the mappings of the specified maps

newMutableMap

@Nonnull
<K2 extends K,V2 extends V> ObjObjMap<K2,V2> newMutableMap(@Nonnull
                                                                   Map<? extends K2,? extends V2> map1,
                                                                   @Nonnull
                                                                   Map<? extends K2,? extends V2> map2,
                                                                   @Nonnull
                                                                   Map<? extends K2,? extends V2> map3,
                                                                   @Nonnull
                                                                   Map<? extends K2,? extends V2> map4)
Constructs a new mutable map which merge the mappings of the specified maps. On conflict, mappings from the maps passed later in the argument list have priority over mappings from the maps passed earlier with the same keys.

Type Parameters:
K2 - the key type of the returned map
V2 - the value type of the returned map
Parameters:
map1 - the first map to merge
map2 - the second map to merge
map3 - the third map to merge
map4 - the fourth map to merge
Returns:
a new mutable map which merge the mappings of the specified maps

newMutableMap

@Nonnull
<K2 extends K,V2 extends V> ObjObjMap<K2,V2> newMutableMap(@Nonnull
                                                                   Map<? extends K2,? extends V2> map1,
                                                                   @Nonnull
                                                                   Map<? extends K2,? extends V2> map2,
                                                                   @Nonnull
                                                                   Map<? extends K2,? extends V2> map3,
                                                                   @Nonnull
                                                                   Map<? extends K2,? extends V2> map4,
                                                                   @Nonnull
                                                                   Map<? extends K2,? extends V2> map5)
Constructs a new mutable map which merge the mappings of the specified maps. On conflict, mappings from the maps passed later in the argument list have priority over mappings from the maps passed earlier with the same keys.

Type Parameters:
K2 - the key type of the returned map
V2 - the value type of the returned map
Parameters:
map1 - the first map to merge
map2 - the second map to merge
map3 - the third map to merge
map4 - the fourth map to merge
map5 - the fifth map to merge
Returns:
a new mutable map which merge the mappings of the specified maps

newMutableMap

@Nonnull
<K2 extends K,V2 extends V> ObjObjMap<K2,V2> newMutableMap(@Nonnull
                                                                   Consumer<BiConsumer<K2,V2>> entriesSupplier)
Constructs a new mutable map filled with mappings consumed by the callback within the given closure. Mappings supplied later within the closure have priority over the mappings passed earlier with the same keys.

Example: TODO

Type Parameters:
K2 - the key type of the returned map
V2 - the value type of the returned map
Parameters:
entriesSupplier - the function which supply mappings for the returned map via the callback passed in
Returns:
a new mutable map with mappings consumed by the callback within the given closure

newMutableMap

@Nonnull
<K2 extends K,V2 extends V> ObjObjMap<K2,V2> newMutableMap(@Nonnull
                                                                   K2[] keys,
                                                                   @Nonnull
                                                                   V2[] values)
Constructs a new mutable map with the given mappings, i. e. pairs of elements from the keys and values arrays at the same index. If keys array have duplicate elements, value corresponding the key with the highest index is left in the returned map.

Type Parameters:
K2 - the key type of the returned map
V2 - the value type of the returned map
Parameters:
keys - the keys of the returned map
values - the values of the returned map, each value is associated with the element of the keys array at the same index
Returns:
a new mutable map with the given mappings
Throws:
IllegalArgumentException - if keys and values arrays have different length

newMutableMap

@Nonnull
<K2 extends K,V2 extends V> ObjObjMap<K2,V2> newMutableMap(@Nonnull
                                                                   Iterable<? extends K2> keys,
                                                                   @Nonnull
                                                                   Iterable<? extends V2> values)
Constructs a new mutable map with the given mappings, i. e. pairs of elements from the keys and values iterables at the same iteration position. If keys have duplicate elements, value corresponding the key appeared last in the iteration is left in the returned map.

Type Parameters:
K2 - the key type of the returned map
V2 - the value type of the returned map
Parameters:
keys - the keys of the returned map
values - the values of the returned map, each value is associated with the element of the keys iterable at the same iteration position
Returns:
a new mutable map with the given mappings
Throws:
IllegalArgumentException - if keys and values have different size

newMutableMapOf

@Nonnull
<K2 extends K,V2 extends V> ObjObjMap<K2,V2> newMutableMapOf(K2 k1,
                                                                     V2 v1)
Constructs a new mutable map of the single specified mapping.

Type Parameters:
K2 - the key type of the returned map
V2 - the value type of the returned map
Parameters:
k1 - the key of the sole mapping
v1 - the value of the sole mapping
Returns:
a new mutable map of the single specified mapping

newMutableMapOf

@Nonnull
<K2 extends K,V2 extends V> ObjObjMap<K2,V2> newMutableMapOf(K2 k1,
                                                                     V2 v1,
                                                                     K2 k2,
                                                                     V2 v2)
Constructs a new mutable map of the two specified mappings.

Type Parameters:
K2 - the key type of the returned map
V2 - the value type of the returned map
Parameters:
k1 - the key of the first mapping
v1 - the value of the first mapping
k2 - the key of the second mapping
v2 - the value of the second mapping
Returns:
a new mutable map of the two specified mappings

newMutableMapOf

@Nonnull
<K2 extends K,V2 extends V> ObjObjMap<K2,V2> newMutableMapOf(K2 k1,
                                                                     V2 v1,
                                                                     K2 k2,
                                                                     V2 v2,
                                                                     K2 k3,
                                                                     V2 v3)
Constructs a new mutable map of the three specified mappings.

Type Parameters:
K2 - the key type of the returned map
V2 - the value type of the returned map
Parameters:
k1 - the key of the first mapping
v1 - the value of the first mapping
k2 - the key of the second mapping
v2 - the value of the second mapping
k3 - the key of the third mapping
v3 - the value of the third mapping
Returns:
a new mutable map of the three specified mappings

newMutableMapOf

@Nonnull
<K2 extends K,V2 extends V> ObjObjMap<K2,V2> newMutableMapOf(K2 k1,
                                                                     V2 v1,
                                                                     K2 k2,
                                                                     V2 v2,
                                                                     K2 k3,
                                                                     V2 v3,
                                                                     K2 k4,
                                                                     V2 v4)
Constructs a new mutable map of the four specified mappings.

Type Parameters:
K2 - the key type of the returned map
V2 - the value type of the returned map
Parameters:
k1 - the key of the first mapping
v1 - the value of the first mapping
k2 - the key of the second mapping
v2 - the value of the second mapping
k3 - the key of the third mapping
v3 - the value of the third mapping
k4 - the key of the fourth mapping
v4 - the value of the fourth mapping
Returns:
a new mutable map of the four specified mappings

newMutableMapOf

@Nonnull
<K2 extends K,V2 extends V> ObjObjMap<K2,V2> newMutableMapOf(K2 k1,
                                                                     V2 v1,
                                                                     K2 k2,
                                                                     V2 v2,
                                                                     K2 k3,
                                                                     V2 v3,
                                                                     K2 k4,
                                                                     V2 v4,
                                                                     K2 k5,
                                                                     V2 v5)
Constructs a new mutable map of the five specified mappings.

Type Parameters:
K2 - the key type of the returned map
V2 - the value type of the returned map
Parameters:
k1 - the key of the first mapping
v1 - the value of the first mapping
k2 - the key of the second mapping
v2 - the value of the second mapping
k3 - the key of the third mapping
v3 - the value of the third mapping
k4 - the key of the fourth mapping
v4 - the value of the fourth mapping
k5 - the key of the fifth mapping
v5 - the value of the fifth mapping
Returns:
a new mutable map of the five specified mappings

newUpdatableMap

@Nonnull
<K2 extends K,V2 extends V> ObjObjMap<K2,V2> newUpdatableMap()
Constructs a new empty updatable map of the default expected size.

Type Parameters:
K2 - the key type of the returned map
V2 - the value type of the returned map
Returns:
a new empty updatable map

newUpdatableMap

@Nonnull
<K2 extends K,V2 extends V> ObjObjMap<K2,V2> newUpdatableMap(int expectedSize)
Constructs a new empty updatable map of the given expected size.

Type Parameters:
K2 - the key type of the returned map
V2 - the value type of the returned map
Parameters:
expectedSize - the expected size of the returned map
Returns:
a new empty updatable map of the given expected size

newUpdatableMap

@Nonnull
<K2 extends K,V2 extends V> ObjObjMap<K2,V2> newUpdatableMap(@Nonnull
                                                                     Map<? extends K2,? extends V2> map,
                                                                     int expectedSize)
Constructs a new updatable map with the same mappings as the specified map.

If the specified map is an instance of ObjObjMap and has the same key equivalence with this factory (and thus the constructed map), the expectedSize argument is ignored.

Type Parameters:
K2 - the key type of the returned map
V2 - the value type of the returned map
Parameters:
map - the map whose mappings are to be placed in the returned map
expectedSize - the expected size of the returned map
Returns:
a new updatable map with the same mappings as the specified map

newUpdatableMap

@Nonnull
<K2 extends K,V2 extends V> ObjObjMap<K2,V2> newUpdatableMap(@Nonnull
                                                                     Map<? extends K2,? extends V2> map1,
                                                                     @Nonnull
                                                                     Map<? extends K2,? extends V2> map2,
                                                                     int expectedSize)
Constructs a new updatable map which merge the mappings of the specified maps. On conflict, mappings from the map2 have priority over mappings from the map1 with the same keys.

Type Parameters:
K2 - the key type of the returned map
V2 - the value type of the returned map
Parameters:
map1 - the first map to merge
map2 - the second map to merge
expectedSize - the expected size of the returned map
Returns:
a new updatable map which merge the mappings of the specified maps

newUpdatableMap

@Nonnull
<K2 extends K,V2 extends V> ObjObjMap<K2,V2> newUpdatableMap(@Nonnull
                                                                     Map<? extends K2,? extends V2> map1,
                                                                     @Nonnull
                                                                     Map<? extends K2,? extends V2> map2,
                                                                     @Nonnull
                                                                     Map<? extends K2,? extends V2> map3,
                                                                     int expectedSize)
Constructs a new updatable map which merge the mappings of the specified maps. On conflict, mappings from the maps passed later in the argument list have priority over mappings from the maps passed earlier with the same keys.

Type Parameters:
K2 - the key type of the returned map
V2 - the value type of the returned map
Parameters:
map1 - the first map to merge
map2 - the second map to merge
map3 - the third map to merge
expectedSize - the expected size of the returned map
Returns:
a new updatable map which merge the mappings of the specified maps

newUpdatableMap

@Nonnull
<K2 extends K,V2 extends V> ObjObjMap<K2,V2> newUpdatableMap(@Nonnull
                                                                     Map<? extends K2,? extends V2> map1,
                                                                     @Nonnull
                                                                     Map<? extends K2,? extends V2> map2,
                                                                     @Nonnull
                                                                     Map<? extends K2,? extends V2> map3,
                                                                     @Nonnull
                                                                     Map<? extends K2,? extends V2> map4,
                                                                     int expectedSize)
Constructs a new updatable map which merge the mappings of the specified maps. On conflict, mappings from the maps passed later in the argument list have priority over mappings from the maps passed earlier with the same keys.

Type Parameters:
K2 - the key type of the returned map
V2 - the value type of the returned map
Parameters:
map1 - the first map to merge
map2 - the second map to merge
map3 - the third map to merge
map4 - the fourth map to merge
expectedSize - the expected size of the returned map
Returns:
a new updatable map which merge the mappings of the specified maps

newUpdatableMap

@Nonnull
<K2 extends K,V2 extends V> ObjObjMap<K2,V2> newUpdatableMap(@Nonnull
                                                                     Map<? extends K2,? extends V2> map1,
                                                                     @Nonnull
                                                                     Map<? extends K2,? extends V2> map2,
                                                                     @Nonnull
                                                                     Map<? extends K2,? extends V2> map3,
                                                                     @Nonnull
                                                                     Map<? extends K2,? extends V2> map4,
                                                                     @Nonnull
                                                                     Map<? extends K2,? extends V2> map5,
                                                                     int expectedSize)
Constructs a new updatable map which merge the mappings of the specified maps. On conflict, mappings from the maps passed later in the argument list have priority over mappings from the maps passed earlier with the same keys.

Type Parameters:
K2 - the key type of the returned map
V2 - the value type of the returned map
Parameters:
map1 - the first map to merge
map2 - the second map to merge
map3 - the third map to merge
map4 - the fourth map to merge
map5 - the fifth map to merge
expectedSize - the expected size of the returned map
Returns:
a new updatable map which merge the mappings of the specified maps

newUpdatableMap

@Nonnull
<K2 extends K,V2 extends V> ObjObjMap<K2,V2> newUpdatableMap(@Nonnull
                                                                     Consumer<BiConsumer<K2,V2>> entriesSupplier,
                                                                     int expectedSize)
Constructs a new updatable map filled with mappings consumed by the callback within the given closure. Mappings supplied later within the closure have priority over the mappings passed earlier with the same keys.

Example: TODO

Type Parameters:
K2 - the key type of the returned map
V2 - the value type of the returned map
Parameters:
entriesSupplier - the function which supply mappings for the returned map via the callback passed in
expectedSize - the expected size of the returned map
Returns:
a new updatable map with mappings consumed by the callback within the given closure

newUpdatableMap

@Nonnull
<K2 extends K,V2 extends V> ObjObjMap<K2,V2> newUpdatableMap(@Nonnull
                                                                     K2[] keys,
                                                                     @Nonnull
                                                                     V2[] values,
                                                                     int expectedSize)
Constructs a new updatable map with the given mappings, i. e. pairs of elements from the keys and values arrays at the same index. If keys array have duplicate elements, value corresponding the key with the highest index is left in the returned map.

Type Parameters:
K2 - the key type of the returned map
V2 - the value type of the returned map
Parameters:
keys - the keys of the returned map
values - the values of the returned map, each value is associated with the element of the keys array at the same index
expectedSize - the expected size of the returned map
Returns:
a new updatable map with the given mappings
Throws:
IllegalArgumentException - if keys and values arrays have different length

newUpdatableMap

@Nonnull
<K2 extends K,V2 extends V> ObjObjMap<K2,V2> newUpdatableMap(@Nonnull
                                                                     Iterable<? extends K2> keys,
                                                                     @Nonnull
                                                                     Iterable<? extends V2> values,
                                                                     int expectedSize)
Constructs a new updatable map with the given mappings, i. e. pairs of elements from the keys and values iterables at the same iteration position. If keys have duplicate elements, value corresponding the key appeared last in the iteration is left in the returned map.

Type Parameters:
K2 - the key type of the returned map
V2 - the value type of the returned map
Parameters:
keys - the keys of the returned map
values - the values of the returned map, each value is associated with the element of the keys iterable at the same iteration position
expectedSize - the expected size of the returned map
Returns:
a new updatable map with the given mappings
Throws:
IllegalArgumentException - if keys and values have different size

newUpdatableMap

@Nonnull
<K2 extends K,V2 extends V> ObjObjMap<K2,V2> newUpdatableMap(@Nonnull
                                                                     Map<? extends K2,? extends V2> map)
Constructs a new updatable map with the same mappings as the specified map.

Type Parameters:
K2 - the key type of the returned map
V2 - the value type of the returned map
Parameters:
map - the map whose mappings are to be placed in the returned map
Returns:
a new updatable map with the same mappings as the specified map

newUpdatableMap

@Nonnull
<K2 extends K,V2 extends V> ObjObjMap<K2,V2> newUpdatableMap(@Nonnull
                                                                     Map<? extends K2,? extends V2> map1,
                                                                     @Nonnull
                                                                     Map<? extends K2,? extends V2> map2)
Constructs a new updatable map which merge the mappings of the specified maps. On conflict, mappings from the map2 have priority over mappings from the map1 with the same keys.

Type Parameters:
K2 - the key type of the returned map
V2 - the value type of the returned map
Parameters:
map1 - the first map to merge
map2 - the second map to merge
Returns:
a new updatable map which merge the mappings of the specified maps

newUpdatableMap

@Nonnull
<K2 extends K,V2 extends V> ObjObjMap<K2,V2> newUpdatableMap(@Nonnull
                                                                     Map<? extends K2,? extends V2> map1,
                                                                     @Nonnull
                                                                     Map<? extends K2,? extends V2> map2,
                                                                     @Nonnull
                                                                     Map<? extends K2,? extends V2> map3)
Constructs a new updatable map which merge the mappings of the specified maps. On conflict, mappings from the maps passed later in the argument list have priority over mappings from the maps passed earlier with the same keys.

Type Parameters:
K2 - the key type of the returned map
V2 - the value type of the returned map
Parameters:
map1 - the first map to merge
map2 - the second map to merge
map3 - the third map to merge
Returns:
a new updatable map which merge the mappings of the specified maps

newUpdatableMap

@Nonnull
<K2 extends K,V2 extends V> ObjObjMap<K2,V2> newUpdatableMap(@Nonnull
                                                                     Map<? extends K2,? extends V2> map1,
                                                                     @Nonnull
                                                                     Map<? extends K2,? extends V2> map2,
                                                                     @Nonnull
                                                                     Map<? extends K2,? extends V2> map3,
                                                                     @Nonnull
                                                                     Map<? extends K2,? extends V2> map4)
Constructs a new updatable map which merge the mappings of the specified maps. On conflict, mappings from the maps passed later in the argument list have priority over mappings from the maps passed earlier with the same keys.

Type Parameters:
K2 - the key type of the returned map
V2 - the value type of the returned map
Parameters:
map1 - the first map to merge
map2 - the second map to merge
map3 - the third map to merge
map4 - the fourth map to merge
Returns:
a new updatable map which merge the mappings of the specified maps

newUpdatableMap

@Nonnull
<K2 extends K,V2 extends V> ObjObjMap<K2,V2> newUpdatableMap(@Nonnull
                                                                     Map<? extends K2,? extends V2> map1,
                                                                     @Nonnull
                                                                     Map<? extends K2,? extends V2> map2,
                                                                     @Nonnull
                                                                     Map<? extends K2,? extends V2> map3,
                                                                     @Nonnull
                                                                     Map<? extends K2,? extends V2> map4,
                                                                     @Nonnull
                                                                     Map<? extends K2,? extends V2> map5)
Constructs a new updatable map which merge the mappings of the specified maps. On conflict, mappings from the maps passed later in the argument list have priority over mappings from the maps passed earlier with the same keys.

Type Parameters:
K2 - the key type of the returned map
V2 - the value type of the returned map
Parameters:
map1 - the first map to merge
map2 - the second map to merge
map3 - the third map to merge
map4 - the fourth map to merge
map5 - the fifth map to merge
Returns:
a new updatable map which merge the mappings of the specified maps

newUpdatableMap

@Nonnull
<K2 extends K,V2 extends V> ObjObjMap<K2,V2> newUpdatableMap(@Nonnull
                                                                     Consumer<BiConsumer<K2,V2>> entriesSupplier)
Constructs a new updatable map filled with mappings consumed by the callback within the given closure. Mappings supplied later within the closure have priority over the mappings passed earlier with the same keys.

Example: TODO

Type Parameters:
K2 - the key type of the returned map
V2 - the value type of the returned map
Parameters:
entriesSupplier - the function which supply mappings for the returned map via the callback passed in
Returns:
a new updatable map with mappings consumed by the callback within the given closure

newUpdatableMap

@Nonnull
<K2 extends K,V2 extends V> ObjObjMap<K2,V2> newUpdatableMap(@Nonnull
                                                                     K2[] keys,
                                                                     @Nonnull
                                                                     V2[] values)
Constructs a new updatable map with the given mappings, i. e. pairs of elements from the keys and values arrays at the same index. If keys array have duplicate elements, value corresponding the key with the highest index is left in the returned map.

Type Parameters:
K2 - the key type of the returned map
V2 - the value type of the returned map
Parameters:
keys - the keys of the returned map
values - the values of the returned map, each value is associated with the element of the keys array at the same index
Returns:
a new updatable map with the given mappings
Throws:
IllegalArgumentException - if keys and values arrays have different length

newUpdatableMap

@Nonnull
<K2 extends K,V2 extends V> ObjObjMap<K2,V2> newUpdatableMap(@Nonnull
                                                                     Iterable<? extends K2> keys,
                                                                     @Nonnull
                                                                     Iterable<? extends V2> values)
Constructs a new updatable map with the given mappings, i. e. pairs of elements from the keys and values iterables at the same iteration position. If keys have duplicate elements, value corresponding the key appeared last in the iteration is left in the returned map.

Type Parameters:
K2 - the key type of the returned map
V2 - the value type of the returned map
Parameters:
keys - the keys of the returned map
values - the values of the returned map, each value is associated with the element of the keys iterable at the same iteration position
Returns:
a new updatable map with the given mappings
Throws:
IllegalArgumentException - if keys and values have different size

newUpdatableMapOf

@Nonnull
<K2 extends K,V2 extends V> ObjObjMap<K2,V2> newUpdatableMapOf(K2 k1,
                                                                       V2 v1)
Constructs a new updatable map of the single specified mapping.

Type Parameters:
K2 - the key type of the returned map
V2 - the value type of the returned map
Parameters:
k1 - the key of the sole mapping
v1 - the value of the sole mapping
Returns:
a new updatable map of the single specified mapping

newUpdatableMapOf

@Nonnull
<K2 extends K,V2 extends V> ObjObjMap<K2,V2> newUpdatableMapOf(K2 k1,
                                                                       V2 v1,
                                                                       K2 k2,
                                                                       V2 v2)
Constructs a new updatable map of the two specified mappings.

Type Parameters:
K2 - the key type of the returned map
V2 - the value type of the returned map
Parameters:
k1 - the key of the first mapping
v1 - the value of the first mapping
k2 - the key of the second mapping
v2 - the value of the second mapping
Returns:
a new updatable map of the two specified mappings

newUpdatableMapOf

@Nonnull
<K2 extends K,V2 extends V> ObjObjMap<K2,V2> newUpdatableMapOf(K2 k1,
                                                                       V2 v1,
                                                                       K2 k2,
                                                                       V2 v2,
                                                                       K2 k3,
                                                                       V2 v3)
Constructs a new updatable map of the three specified mappings.

Type Parameters:
K2 - the key type of the returned map
V2 - the value type of the returned map
Parameters:
k1 - the key of the first mapping
v1 - the value of the first mapping
k2 - the key of the second mapping
v2 - the value of the second mapping
k3 - the key of the third mapping
v3 - the value of the third mapping
Returns:
a new updatable map of the three specified mappings

newUpdatableMapOf

@Nonnull
<K2 extends K,V2 extends V> ObjObjMap<K2,V2> newUpdatableMapOf(K2 k1,
                                                                       V2 v1,
                                                                       K2 k2,
                                                                       V2 v2,
                                                                       K2 k3,
                                                                       V2 v3,
                                                                       K2 k4,
                                                                       V2 v4)
Constructs a new updatable map of the four specified mappings.

Type Parameters:
K2 - the key type of the returned map
V2 - the value type of the returned map
Parameters:
k1 - the key of the first mapping
v1 - the value of the first mapping
k2 - the key of the second mapping
v2 - the value of the second mapping
k3 - the key of the third mapping
v3 - the value of the third mapping
k4 - the key of the fourth mapping
v4 - the value of the fourth mapping
Returns:
a new updatable map of the four specified mappings

newUpdatableMapOf

@Nonnull
<K2 extends K,V2 extends V> ObjObjMap<K2,V2> newUpdatableMapOf(K2 k1,
                                                                       V2 v1,
                                                                       K2 k2,
                                                                       V2 v2,
                                                                       K2 k3,
                                                                       V2 v3,
                                                                       K2 k4,
                                                                       V2 v4,
                                                                       K2 k5,
                                                                       V2 v5)
Constructs a new updatable map of the five specified mappings.

Type Parameters:
K2 - the key type of the returned map
V2 - the value type of the returned map
Parameters:
k1 - the key of the first mapping
v1 - the value of the first mapping
k2 - the key of the second mapping
v2 - the value of the second mapping
k3 - the key of the third mapping
v3 - the value of the third mapping
k4 - the key of the fourth mapping
v4 - the value of the fourth mapping
k5 - the key of the fifth mapping
v5 - the value of the fifth mapping
Returns:
a new updatable map of the five specified mappings

newImmutableMap

@Nonnull
<K2 extends K,V2 extends V> ObjObjMap<K2,V2> newImmutableMap(@Nonnull
                                                                     Map<? extends K2,? extends V2> map,
                                                                     int expectedSize)
Constructs a new immutable map with the same mappings as the specified map.

If the specified map is an instance of ObjObjMap and has the same key equivalence with this factory (and thus the constructed map), the expectedSize argument is ignored.

Type Parameters:
K2 - the key type of the returned map
V2 - the value type of the returned map
Parameters:
map - the map whose mappings are to be placed in the returned map
expectedSize - the expected size of the returned map
Returns:
a new immutable map with the same mappings as the specified map

newImmutableMap

@Nonnull
<K2 extends K,V2 extends V> ObjObjMap<K2,V2> newImmutableMap(@Nonnull
                                                                     Map<? extends K2,? extends V2> map1,
                                                                     @Nonnull
                                                                     Map<? extends K2,? extends V2> map2,
                                                                     int expectedSize)
Constructs a new immutable map which merge the mappings of the specified maps. On conflict, mappings from the map2 have priority over mappings from the map1 with the same keys.

Type Parameters:
K2 - the key type of the returned map
V2 - the value type of the returned map
Parameters:
map1 - the first map to merge
map2 - the second map to merge
expectedSize - the expected size of the returned map
Returns:
a new immutable map which merge the mappings of the specified maps

newImmutableMap

@Nonnull
<K2 extends K,V2 extends V> ObjObjMap<K2,V2> newImmutableMap(@Nonnull
                                                                     Map<? extends K2,? extends V2> map1,
                                                                     @Nonnull
                                                                     Map<? extends K2,? extends V2> map2,
                                                                     @Nonnull
                                                                     Map<? extends K2,? extends V2> map3,
                                                                     int expectedSize)
Constructs a new immutable map which merge the mappings of the specified maps. On conflict, mappings from the maps passed later in the argument list have priority over mappings from the maps passed earlier with the same keys.

Type Parameters:
K2 - the key type of the returned map
V2 - the value type of the returned map
Parameters:
map1 - the first map to merge
map2 - the second map to merge
map3 - the third map to merge
expectedSize - the expected size of the returned map
Returns:
a new immutable map which merge the mappings of the specified maps

newImmutableMap

@Nonnull
<K2 extends K,V2 extends V> ObjObjMap<K2,V2> newImmutableMap(@Nonnull
                                                                     Map<? extends K2,? extends V2> map1,
                                                                     @Nonnull
                                                                     Map<? extends K2,? extends V2> map2,
                                                                     @Nonnull
                                                                     Map<? extends K2,? extends V2> map3,
                                                                     @Nonnull
                                                                     Map<? extends K2,? extends V2> map4,
                                                                     int expectedSize)
Constructs a new immutable map which merge the mappings of the specified maps. On conflict, mappings from the maps passed later in the argument list have priority over mappings from the maps passed earlier with the same keys.

Type Parameters:
K2 - the key type of the returned map
V2 - the value type of the returned map
Parameters:
map1 - the first map to merge
map2 - the second map to merge
map3 - the third map to merge
map4 - the fourth map to merge
expectedSize - the expected size of the returned map
Returns:
a new immutable map which merge the mappings of the specified maps

newImmutableMap

@Nonnull
<K2 extends K,V2 extends V> ObjObjMap<K2,V2> newImmutableMap(@Nonnull
                                                                     Map<? extends K2,? extends V2> map1,
                                                                     @Nonnull
                                                                     Map<? extends K2,? extends V2> map2,
                                                                     @Nonnull
                                                                     Map<? extends K2,? extends V2> map3,
                                                                     @Nonnull
                                                                     Map<? extends K2,? extends V2> map4,
                                                                     @Nonnull
                                                                     Map<? extends K2,? extends V2> map5,
                                                                     int expectedSize)
Constructs a new immutable map which merge the mappings of the specified maps. On conflict, mappings from the maps passed later in the argument list have priority over mappings from the maps passed earlier with the same keys.

Type Parameters:
K2 - the key type of the returned map
V2 - the value type of the returned map
Parameters:
map1 - the first map to merge
map2 - the second map to merge
map3 - the third map to merge
map4 - the fourth map to merge
map5 - the fifth map to merge
expectedSize - the expected size of the returned map
Returns:
a new immutable map which merge the mappings of the specified maps

newImmutableMap

@Nonnull
<K2 extends K,V2 extends V> ObjObjMap<K2,V2> newImmutableMap(@Nonnull
                                                                     Consumer<BiConsumer<K2,V2>> entriesSupplier,
                                                                     int expectedSize)
Constructs a new immutable map filled with mappings consumed by the callback within the given closure. Mappings supplied later within the closure have priority over the mappings passed earlier with the same keys.

Example: TODO

Type Parameters:
K2 - the key type of the returned map
V2 - the value type of the returned map
Parameters:
entriesSupplier - the function which supply mappings for the returned map via the callback passed in
expectedSize - the expected size of the returned map
Returns:
a new immutable map with mappings consumed by the callback within the given closure

newImmutableMap

@Nonnull
<K2 extends K,V2 extends V> ObjObjMap<K2,V2> newImmutableMap(@Nonnull
                                                                     K2[] keys,
                                                                     @Nonnull
                                                                     V2[] values,
                                                                     int expectedSize)
Constructs a new immutable map with the given mappings, i. e. pairs of elements from the keys and values arrays at the same index. If keys array have duplicate elements, value corresponding the key with the highest index is left in the returned map.

Type Parameters:
K2 - the key type of the returned map
V2 - the value type of the returned map
Parameters:
keys - the keys of the returned map
values - the values of the returned map, each value is associated with the element of the keys array at the same index
expectedSize - the expected size of the returned map
Returns:
a new immutable map with the given mappings
Throws:
IllegalArgumentException - if keys and values arrays have different length

newImmutableMap

@Nonnull
<K2 extends K,V2 extends V> ObjObjMap<K2,V2> newImmutableMap(@Nonnull
                                                                     Iterable<? extends K2> keys,
                                                                     @Nonnull
                                                                     Iterable<? extends V2> values,
                                                                     int expectedSize)
Constructs a new immutable map with the given mappings, i. e. pairs of elements from the keys and values iterables at the same iteration position. If keys have duplicate elements, value corresponding the key appeared last in the iteration is left in the returned map.

Type Parameters:
K2 - the key type of the returned map
V2 - the value type of the returned map
Parameters:
keys - the keys of the returned map
values - the values of the returned map, each value is associated with the element of the keys iterable at the same iteration position
expectedSize - the expected size of the returned map
Returns:
a new immutable map with the given mappings
Throws:
IllegalArgumentException - if keys and values have different size

newImmutableMap

@Nonnull
<K2 extends K,V2 extends V> ObjObjMap<K2,V2> newImmutableMap(@Nonnull
                                                                     Map<? extends K2,? extends V2> map)
Constructs a new immutable map with the same mappings as the specified map.

Type Parameters:
K2 - the key type of the returned map
V2 - the value type of the returned map
Parameters:
map - the map whose mappings are to be placed in the returned map
Returns:
a new immutable map with the same mappings as the specified map

newImmutableMap

@Nonnull
<K2 extends K,V2 extends V> ObjObjMap<K2,V2> newImmutableMap(@Nonnull
                                                                     Map<? extends K2,? extends V2> map1,
                                                                     @Nonnull
                                                                     Map<? extends K2,? extends V2> map2)
Constructs a new immutable map which merge the mappings of the specified maps. On conflict, mappings from the map2 have priority over mappings from the map1 with the same keys.

Type Parameters:
K2 - the key type of the returned map
V2 - the value type of the returned map
Parameters:
map1 - the first map to merge
map2 - the second map to merge
Returns:
a new immutable map which merge the mappings of the specified maps

newImmutableMap

@Nonnull
<K2 extends K,V2 extends V> ObjObjMap<K2,V2> newImmutableMap(@Nonnull
                                                                     Map<? extends K2,? extends V2> map1,
                                                                     @Nonnull
                                                                     Map<? extends K2,? extends V2> map2,
                                                                     @Nonnull
                                                                     Map<? extends K2,? extends V2> map3)
Constructs a new immutable map which merge the mappings of the specified maps. On conflict, mappings from the maps passed later in the argument list have priority over mappings from the maps passed earlier with the same keys.

Type Parameters:
K2 - the key type of the returned map
V2 - the value type of the returned map
Parameters:
map1 - the first map to merge
map2 - the second map to merge
map3 - the third map to merge
Returns:
a new immutable map which merge the mappings of the specified maps

newImmutableMap

@Nonnull
<K2 extends K,V2 extends V> ObjObjMap<K2,V2> newImmutableMap(@Nonnull
                                                                     Map<? extends K2,? extends V2> map1,
                                                                     @Nonnull
                                                                     Map<? extends K2,? extends V2> map2,
                                                                     @Nonnull
                                                                     Map<? extends K2,? extends V2> map3,
                                                                     @Nonnull
                                                                     Map<? extends K2,? extends V2> map4)
Constructs a new immutable map which merge the mappings of the specified maps. On conflict, mappings from the maps passed later in the argument list have priority over mappings from the maps passed earlier with the same keys.

Type Parameters:
K2 - the key type of the returned map
V2 - the value type of the returned map
Parameters:
map1 - the first map to merge
map2 - the second map to merge
map3 - the third map to merge
map4 - the fourth map to merge
Returns:
a new immutable map which merge the mappings of the specified maps

newImmutableMap

@Nonnull
<K2 extends K,V2 extends V> ObjObjMap<K2,V2> newImmutableMap(@Nonnull
                                                                     Map<? extends K2,? extends V2> map1,
                                                                     @Nonnull
                                                                     Map<? extends K2,? extends V2> map2,
                                                                     @Nonnull
                                                                     Map<? extends K2,? extends V2> map3,
                                                                     @Nonnull
                                                                     Map<? extends K2,? extends V2> map4,
                                                                     @Nonnull
                                                                     Map<? extends K2,? extends V2> map5)
Constructs a new immutable map which merge the mappings of the specified maps. On conflict, mappings from the maps passed later in the argument list have priority over mappings from the maps passed earlier with the same keys.

Type Parameters:
K2 - the key type of the returned map
V2 - the value type of the returned map
Parameters:
map1 - the first map to merge
map2 - the second map to merge
map3 - the third map to merge
map4 - the fourth map to merge
map5 - the fifth map to merge
Returns:
a new immutable map which merge the mappings of the specified maps

newImmutableMap

@Nonnull
<K2 extends K,V2 extends V> ObjObjMap<K2,V2> newImmutableMap(@Nonnull
                                                                     Consumer<BiConsumer<K2,V2>> entriesSupplier)
Constructs a new immutable map filled with mappings consumed by the callback within the given closure. Mappings supplied later within the closure have priority over the mappings passed earlier with the same keys.

Example: TODO

Type Parameters:
K2 - the key type of the returned map
V2 - the value type of the returned map
Parameters:
entriesSupplier - the function which supply mappings for the returned map via the callback passed in
Returns:
a new immutable map with mappings consumed by the callback within the given closure

newImmutableMap

@Nonnull
<K2 extends K,V2 extends V> ObjObjMap<K2,V2> newImmutableMap(@Nonnull
                                                                     K2[] keys,
                                                                     @Nonnull
                                                                     V2[] values)
Constructs a new immutable map with the given mappings, i. e. pairs of elements from the keys and values arrays at the same index. If keys array have duplicate elements, value corresponding the key with the highest index is left in the returned map.

Type Parameters:
K2 - the key type of the returned map
V2 - the value type of the returned map
Parameters:
keys - the keys of the returned map
values - the values of the returned map, each value is associated with the element of the keys array at the same index
Returns:
a new immutable map with the given mappings
Throws:
IllegalArgumentException - if keys and values arrays have different length

newImmutableMap

@Nonnull
<K2 extends K,V2 extends V> ObjObjMap<K2,V2> newImmutableMap(@Nonnull
                                                                     Iterable<? extends K2> keys,
                                                                     @Nonnull
                                                                     Iterable<? extends V2> values)
Constructs a new immutable map with the given mappings, i. e. pairs of elements from the keys and values iterables at the same iteration position. If keys have duplicate elements, value corresponding the key appeared last in the iteration is left in the returned map.

Type Parameters:
K2 - the key type of the returned map
V2 - the value type of the returned map
Parameters:
keys - the keys of the returned map
values - the values of the returned map, each value is associated with the element of the keys iterable at the same iteration position
Returns:
a new immutable map with the given mappings
Throws:
IllegalArgumentException - if keys and values have different size

newImmutableMapOf

@Nonnull
<K2 extends K,V2 extends V> ObjObjMap<K2,V2> newImmutableMapOf(K2 k1,
                                                                       V2 v1)
Constructs a new immutable map of the single specified mapping.

Type Parameters:
K2 - the key type of the returned map
V2 - the value type of the returned map
Parameters:
k1 - the key of the sole mapping
v1 - the value of the sole mapping
Returns:
a new immutable map of the single specified mapping

newImmutableMapOf

@Nonnull
<K2 extends K,V2 extends V> ObjObjMap<K2,V2> newImmutableMapOf(K2 k1,
                                                                       V2 v1,
                                                                       K2 k2,
                                                                       V2 v2)
Constructs a new immutable map of the two specified mappings.

Type Parameters:
K2 - the key type of the returned map
V2 - the value type of the returned map
Parameters:
k1 - the key of the first mapping
v1 - the value of the first mapping
k2 - the key of the second mapping
v2 - the value of the second mapping
Returns:
a new immutable map of the two specified mappings

newImmutableMapOf

@Nonnull
<K2 extends K,V2 extends V> ObjObjMap<K2,V2> newImmutableMapOf(K2 k1,
                                                                       V2 v1,
                                                                       K2 k2,
                                                                       V2 v2,
                                                                       K2 k3,
                                                                       V2 v3)
Constructs a new immutable map of the three specified mappings.

Type Parameters:
K2 - the key type of the returned map
V2 - the value type of the returned map
Parameters:
k1 - the key of the first mapping
v1 - the value of the first mapping
k2 - the key of the second mapping
v2 - the value of the second mapping
k3 - the key of the third mapping
v3 - the value of the third mapping
Returns:
a new immutable map of the three specified mappings

newImmutableMapOf

@Nonnull
<K2 extends K,V2 extends V> ObjObjMap<K2,V2> newImmutableMapOf(K2 k1,
                                                                       V2 v1,
                                                                       K2 k2,
                                                                       V2 v2,
                                                                       K2 k3,
                                                                       V2 v3,
                                                                       K2 k4,
                                                                       V2 v4)
Constructs a new immutable map of the four specified mappings.

Type Parameters:
K2 - the key type of the returned map
V2 - the value type of the returned map
Parameters:
k1 - the key of the first mapping
v1 - the value of the first mapping
k2 - the key of the second mapping
v2 - the value of the second mapping
k3 - the key of the third mapping
v3 - the value of the third mapping
k4 - the key of the fourth mapping
v4 - the value of the fourth mapping
Returns:
a new immutable map of the four specified mappings

newImmutableMapOf

@Nonnull
<K2 extends K,V2 extends V> ObjObjMap<K2,V2> newImmutableMapOf(K2 k1,
                                                                       V2 v1,
                                                                       K2 k2,
                                                                       V2 v2,
                                                                       K2 k3,
                                                                       V2 v3,
                                                                       K2 k4,
                                                                       V2 v4,
                                                                       K2 k5,
                                                                       V2 v5)
Constructs a new immutable map of the five specified mappings.

Type Parameters:
K2 - the key type of the returned map
V2 - the value type of the returned map
Parameters:
k1 - the key of the first mapping
v1 - the value of the first mapping
k2 - the key of the second mapping
v2 - the value of the second mapping
k3 - the key of the third mapping
v3 - the value of the third mapping
k4 - the key of the fourth mapping
v4 - the value of the fourth mapping
k5 - the key of the fifth mapping
v5 - the value of the fifth mapping
Returns:
a new immutable map of the five specified mappings