Interface Reference2ReferenceMap<K,V>
- All Superinterfaces:
it.unimi.dsi.fastutil.Function<K,V>,java.util.function.Function<K,V>,java.util.Map<K,V>,Reference2ReferenceFunction<K,V>
- All Known Subinterfaces:
Reference2ReferenceSortedMap<K,V>
- All Known Implementing Classes:
AbstractReference2ReferenceMap,AbstractReference2ReferenceSortedMap,Reference2ReferenceArrayMap,Reference2ReferenceLinkedOpenHashMap,Reference2ReferenceMaps.EmptyMap,Reference2ReferenceMaps.Singleton,Reference2ReferenceMaps.SynchronizedMap,Reference2ReferenceMaps.UnmodifiableMap,Reference2ReferenceOpenCustomHashMap,Reference2ReferenceOpenHashMap,Reference2ReferenceSortedMaps.EmptySortedMap,Reference2ReferenceSortedMaps.Singleton,Reference2ReferenceSortedMaps.SynchronizedSortedMap,Reference2ReferenceSortedMaps.UnmodifiableSortedMap
public interface Reference2ReferenceMap<K,V> extends Reference2ReferenceFunction<K,V>, java.util.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 Reference2ReferenceMap.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 interfaceReference2ReferenceMap.Entry<K,V>A type-specificMap.Entry; provides some additional methods that use polymorphism to avoid (un)boxing.static interfaceReference2ReferenceMap.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(java.lang.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 it.unimi.dsi.fastutil.objects.ObjectSet<java.util.Map.Entry<K,V>>entrySet()Returns a set view of the mappings contained in this map.default voidforEach(java.util.function.BiConsumer<? super K,? super V> consumer)default VgetOrDefault(java.lang.Object key, V defaultValue)Returns the value associated by this function to the specified key, or give the specified value if not present.ReferenceSet<K>keySet()default Vput(K key, V value)Adds a pair to the map (optional operation).it.unimi.dsi.fastutil.objects.ObjectSet<Reference2ReferenceMap.Entry<K,V>>reference2ReferenceEntrySet()Returns a type-specific set view of the mappings contained in this map.default Vremove(java.lang.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 it.unimi.dsi.fastutil.Function
applyMethods inherited from interface java.util.function.Function
andThen, composeMethods 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.Reference2ReferenceFunction
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. -
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 interfaceReference2ReferenceFunction<K,V>- Parameters:
rv- the new default return value.- See Also:
defaultReturnValue()
-
defaultReturnValue
V defaultReturnValue()Gets the default return value.- Specified by:
defaultReturnValuein interfaceReference2ReferenceFunction<K,V>- Returns:
- the current default return value.
-
reference2ReferenceEntrySet
it.unimi.dsi.fastutil.objects.ObjectSet<Reference2ReferenceMap.Entry<K,V>> reference2ReferenceEntrySet()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. -
put
Adds a pair to the map (optional operation).This default implementation just delegates to the corresponding function method.
- Specified by:
putin interfaceit.unimi.dsi.fastutil.Function<K,V>- Specified by:
putin interfacejava.util.Map<K,V>- Specified by:
putin interfaceReference2ReferenceFunction<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 interfaceit.unimi.dsi.fastutil.Function<K,V>- Specified by:
removein interfacejava.util.Map<K,V>- Specified by:
removein interfaceReference2ReferenceFunction<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
ReferenceSet<K> keySet() -
values
ReferenceCollection<V> values() -
containsKey
boolean containsKey(java.lang.Object key)Returns true if this function contains a mapping for the specified key. -
forEach
-
getOrDefault
Description copied from interface:Reference2ReferenceFunctionReturns the value associated by this function to the specified key, or give the specified value if not present.- Specified by:
getOrDefaultin interfaceit.unimi.dsi.fastutil.Function<K,V>- Specified by:
getOrDefaultin interfacejava.util.Map<K,V>- Specified by:
getOrDefaultin interfaceReference2ReferenceFunction<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)
-