it.unimi.dsi.fastutil.doubles
Class AbstractDouble2ReferenceFunction<V>

java.lang.Object
  extended by it.unimi.dsi.fastutil.doubles.AbstractDouble2ReferenceFunction<V>
All Implemented Interfaces:
Double2ReferenceFunction<V>, Function<Double,V>, Serializable
Direct Known Subclasses:
AbstractDouble2ReferenceMap, Double2ReferenceFunctions.EmptyFunction, Double2ReferenceFunctions.Singleton, Double2ReferenceFunctions.SynchronizedFunction, Double2ReferenceFunctions.UnmodifiableFunction

public abstract class AbstractDouble2ReferenceFunction<V>
extends Object
implements Double2ReferenceFunction<V>, Serializable

An abstract class providing basic methods for functions implementing a type-specific interface.

Optional operations just throw an UnsupportedOperationException. Generic versions of accessors delegate to the corresponding type-specific counterparts following the interface rules (they take care of returning null on a missing key).

This class handles directly a default return value (including methods to access it). Instances of classes inheriting from this class have just to return defRetValue to denote lack of a key in type-specific methods. The value is serialized.

Implementing subclasses have just to provide type-specific get(), type-specific containsKey(), and size() methods.

See Also:
Serialized Form

Method Summary
 void clear()
          Removes all associations from this function (optional operation).
 boolean containsKey(Object ok)
          Returns true if this function contains a mapping for the specified key.
 V defaultReturnValue()
          Gets the default return value.
 void defaultReturnValue(V rv)
          Sets the default return value.
 V get(Object ok)
          Delegates to the corresponding type-specific method, taking care of returning null on a missing key.
 V put(double key, V value)
          Adds a pair to the map.
 V put(Double ok, V ov)
          Delegates to the corresponding type-specific method, taking care of returning null on a missing key.
 V remove(double key)
          Removes the mapping with the given key.
 V remove(Object ok)
          Delegates to the corresponding type-specific method, taking care of returning null on a missing key.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface it.unimi.dsi.fastutil.doubles.Double2ReferenceFunction
containsKey, get
 
Methods inherited from interface it.unimi.dsi.fastutil.Function
size
 

Method Detail

defaultReturnValue

public void defaultReturnValue(V rv)
Description copied from interface: Double2ReferenceFunction
Sets the default return value. This value must be returned by type-specific versions of get(), put() and remove() to denote that the map does not contain the specified key. It must be 0/false/null by default.

Specified by:
defaultReturnValue in interface Double2ReferenceFunction<V>
Parameters:
rv - the new default return value.
See Also:
Double2ReferenceFunction.defaultReturnValue()

defaultReturnValue

public V defaultReturnValue()
Description copied from interface: Double2ReferenceFunction
Gets the default return value.

Specified by:
defaultReturnValue in interface Double2ReferenceFunction<V>
Returns:
the current default return value.

put

public V put(double key,
             V value)
Description copied from interface: Double2ReferenceFunction
Adds a pair to the map.

Specified by:
put in interface Double2ReferenceFunction<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

public V remove(double key)
Description copied from interface: Double2ReferenceFunction
Removes the mapping with the given key.

Specified by:
remove in interface Double2ReferenceFunction<V>
Returns:
the old value, or the default return value if no value was present for the given key.
See Also:
Function.remove(Object)

clear

public void clear()
Description copied from interface: Function
Removes all associations from this function (optional operation).

Specified by:
clear in interface Function<Double,V>
See Also:
Map.clear()

containsKey

public boolean containsKey(Object ok)
Description copied from interface: Function
Returns true if this function contains a mapping for the specified key.

Note that for some kind of functions (e.g., hashes) this method will always return true.

Specified by:
containsKey in interface Function<Double,V>
Parameters:
ok - the key.
Returns:
true if this function associates a value to key.
See Also:
Map.containsKey(Object)

get

public V get(Object ok)
Delegates to the corresponding type-specific method, taking care of returning null on a missing key.

This method must check whether the provided key is in the map using containsKey(). Thus, it probes the map twice. Implementors of subclasses should override it with a more efficient method.

Specified by:
get in interface Function<Double,V>
Parameters:
ok - the key.
Returns:
the corresponding value, or null if no value was present for the given key.
See Also:
Map.get(Object)

put

public V put(Double ok,
             V ov)
Delegates to the corresponding type-specific method, taking care of returning null on a missing key.

This method must check whether the provided key is in the map using containsKey(). Thus, it probes the map twice. Implementors of subclasses should override it with a more efficient method.

Specified by:
put in interface Function<Double,V>
Parameters:
ok - the key.
ov - the value.
Returns:
the old value, or null if no value was present for the given key.
See Also:
Map.put(Object,Object)

remove

public V remove(Object ok)
Delegates to the corresponding type-specific method, taking care of returning null on a missing key.

This method must check whether the provided key is in the map using containsKey(). Thus, it probes the map twice. Implementors of subclasses should override it with a more efficient method.

Specified by:
remove in interface Function<Double,V>
Returns:
the old value, or null if no value was present for the given key.
See Also:
Map.remove(Object)