Interface Object2ReferenceMap<K,V>
- All Superinterfaces:
Function<K,V>,Function<K,V>,Map<K,V>,Object2ReferenceFunction<K,V>
- All Known Subinterfaces:
Object2ReferenceSortedMap<K,V>
- All Known Implementing Classes:
AbstractObject2ReferenceMap,AbstractObject2ReferenceSortedMap,Object2ReferenceArrayMap,Object2ReferenceAVLTreeMap,Object2ReferenceLinkedOpenCustomHashMap,Object2ReferenceLinkedOpenHashMap,Object2ReferenceMaps.EmptyMap,Object2ReferenceMaps.Singleton,Object2ReferenceMaps.SynchronizedMap,Object2ReferenceMaps.UnmodifiableMap,Object2ReferenceOpenCustomHashMap,Object2ReferenceOpenHashMap,Object2ReferenceRBTreeMap,Object2ReferenceSortedMaps.EmptySortedMap,Object2ReferenceSortedMaps.Singleton,Object2ReferenceSortedMaps.SynchronizedSortedMap,Object2ReferenceSortedMaps.UnmodifiableSortedMap
public interface Object2ReferenceMap<K,V> extends Object2ReferenceFunction<K,V>, Map<K,V>
Map; provides some additional methods that use
polymorphism to avoid (un)boxing, and handling of a default return value.
Besides extending the corresponding type-specific
function, this interface
strengthens Map.entrySet(), keySet() and values().
Moreover, a number of methods, such as size(),
defaultReturnValue(), etc., are un-defaulted as their function
default do not make sense for a map. Maps returning entry sets of type
Object2ReferenceMap.FastEntrySet support also fast iteration.
This interface specifies reference equality semantics (members will be
compared equal with == instead of equals) for its keys or values (or both), which may result in breaks in
contract if attempted to be used with non reference-equality semantics based
Maps. For example, a
aReferenceToIntMap.equals(aObjectToIntMap) may return different a
different result then aObjectToIntMap.equals(aReferenceToIntMap), in
violation of equals's contract requiring it being
symmetric.
A submap or subset may or may not have an independent default return value (which however must be initialized to the default return value of the originator).
- See Also:
Map
-
Nested Class Summary
Nested Classes Modifier and Type Interface Description static interfaceObject2ReferenceMap.Entry<K,V>A type-specificMap.Entry; provides some additional methods that use polymorphism to avoid (un)boxing.static interfaceObject2ReferenceMap.FastEntrySet<K,V>An entry set providing fast iteration. -
Method Summary
Modifier and Type Method Description default voidclear()Removes all of the mappings from this map (optional operation).booleancontainsKey(Object key)Returns true if this function contains a mapping for the specified key.VdefaultReturnValue()Gets the default return value.voiddefaultReturnValue(V rv)Sets the default return value (optional operation).default ObjectSet<Map.Entry<K,V>>entrySet()Returns a set view of the mappings contained in this map.default voidforEach(BiConsumer<? super K,? super V> consumer)default VgetOrDefault(Object key, V defaultValue)Returns the value associated by this function to the specified key, or give the specified value if not present.ObjectSet<K>keySet()ObjectSet<Object2ReferenceMap.Entry<K,V>>object2ReferenceEntrySet()Returns a type-specific set view of the mappings contained in this map.default Vput(K key, V value)Adds a pair to the map (optional operation).default Vremove(Object key)Removes the mapping with the given key (optional operation).intsize()Returns the number of key/value mappings in this map.ReferenceCollection<V>values()Methods inherited from interface java.util.Map
compute, computeIfAbsent, computeIfPresent, containsValue, equals, get, hashCode, isEmpty, merge, putAll, putIfAbsent, remove, replace, replace, replaceAllMethods inherited from interface it.unimi.dsi.fastutil.objects.Object2ReferenceFunction
andThenByte, andThenChar, andThenDouble, andThenFloat, andThenInt, andThenLong, andThenObject, andThenReference, andThenShort, composeByte, composeChar, composeDouble, composeFloat, composeInt, composeLong, composeObject, composeReference, composeShort, get
-
Method Details
-
size
int size()Returns the number of key/value mappings in this map. If the map contains more thanInteger.MAX_VALUEelements, returnsInteger.MAX_VALUE. -
clear
default void clear()Removes all of the mappings from this map (optional operation). The map will be empty after this call returns.- Specified by:
clearin interfaceFunction<K,V>- Specified by:
clearin interfaceMap<K,V>- Throws:
UnsupportedOperationException- if theclear()operation is not supported by this map- See Also:
Map.clear()
-
defaultReturnValue
Sets the default return value (optional operation). This value must be returned by type-specific versions ofget(),put()andremove()to denote that the map does not contain the specified key. It must benullby default.Warning: Changing this to a non-null value can have unforeseen consequences. Especially, it breaks compatibility with the specifications of Java's
Mapinterface. It has to be used with great care and thorough study of all method comments is recommended.- Specified by:
defaultReturnValuein interfaceObject2ReferenceFunction<K,V>- Parameters:
rv- the new default return value.- See Also:
defaultReturnValue()
-
defaultReturnValue
V defaultReturnValue()Gets the default return value.- Specified by:
defaultReturnValuein interfaceObject2ReferenceFunction<K,V>- Returns:
- the current default return value.
-
object2ReferenceEntrySet
ObjectSet<Object2ReferenceMap.Entry<K,V>> object2ReferenceEntrySet()Returns a type-specific set view of the mappings contained in this map.This method is necessary because there is no inheritance along type parameters: it is thus impossible to strengthen
Map.entrySet()so that it returns anObjectSetof type-specific entries (the latter makes it possible to access keys and values with type-specific methods).- Returns:
- a type-specific set view of the mappings contained in this map.
- See Also:
Map.entrySet()
-
entrySet
Returns a set view of the mappings contained in this map.- Specified by:
entrySetin interfaceMap<K,V>- Returns:
- a set view of the mappings contained in this map.
- See Also:
Map.entrySet()- API Notes:
- Note that this specification strengthens the one given in
Map.entrySet().
-
put
Adds a pair to the map (optional operation).This default implementation just delegates to the corresponding function method.
- Specified by:
putin interfaceFunction<K,V>- Specified by:
putin interfaceMap<K,V>- Specified by:
putin interfaceObject2ReferenceFunction<K,V>- Parameters:
key- the key.value- the value.- Returns:
- the old value, or the default return value if no value was present for the given key.
- See Also:
Function.put(Object,Object)
-
remove
Removes the mapping with the given key (optional operation).This default implementation just delegates to the corresponding type-specific–function method.
- Specified by:
removein interfaceFunction<K,V>- Specified by:
removein interfaceMap<K,V>- Specified by:
removein interfaceObject2ReferenceFunction<K,V>- Parameters:
key- the key.- Returns:
- the old value, or the default return value if no value was present for the given key.
- See Also:
Function.remove(Object)
-
keySet
- Specified by:
keySetin interfaceMap<K,V>- Returns:
- a set view of the keys contained in this map.
- See Also:
Map.keySet()- API Notes:
- Note that this specification strengthens the one given in
Map.keySet().
-
values
ReferenceCollection<V> values()- Specified by:
valuesin interfaceMap<K,V>- Returns:
- a set view of the values contained in this map.
- See Also:
Map.values()- API Notes:
- Note that this specification strengthens the one given in
Map.values().
-
containsKey
Returns true if this function contains a mapping for the specified key.- Specified by:
containsKeyin interfaceFunction<K,V>- Specified by:
containsKeyin interfaceMap<K,V>- Parameters:
key- the key.- Returns:
- true if this function associates a value to
key. - See Also:
Map.containsKey(Object)
-
forEach
-
getOrDefault
Description copied from interface:Object2ReferenceFunctionReturns the value associated by this function to the specified key, or give the specified value if not present.- Specified by:
getOrDefaultin interfaceFunction<K,V>- Specified by:
getOrDefaultin interfaceMap<K,V>- Specified by:
getOrDefaultin interfaceObject2ReferenceFunction<K,V>- Parameters:
key- the key.defaultValue- the value to return if not present.- Returns:
- the corresponding value, or
defaultValueif no value was present for the given key. - See Also:
Function.getOrDefault(Object, Object)
-