Class AbstractLong2LongMap

java.lang.Object
it.unimi.dsi.fastutil.longs.AbstractLong2LongFunction
it.unimi.dsi.fastutil.longs.AbstractLong2LongMap
All Implemented Interfaces:
Function<java.lang.Long,​java.lang.Long>, Long2LongFunction, Long2LongMap, java.io.Serializable, java.util.function.Function<java.lang.Long,​java.lang.Long>, java.util.function.LongUnaryOperator, java.util.Map<java.lang.Long,​java.lang.Long>
Direct Known Subclasses:
AbstractLong2LongSortedMap, Long2LongArrayMap, Long2LongOpenCustomHashMap, Long2LongOpenHashMap

public abstract class AbstractLong2LongMap
extends AbstractLong2LongFunction
implements Long2LongMap, java.io.Serializable
An abstract class providing basic methods for maps 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).

As a further help, this class provides a BasicEntry inner class that implements a type-specific version of Map.Entry; it is particularly useful for those classes that do not implement their own entries (e.g., most immutable maps).

See Also:
Serialized Form
  • Method Details

    • containsKey

      public boolean containsKey​(long k)
      Returns true if this function contains a mapping for the specified key.
      Specified by:
      containsKey in interface Long2LongFunction
      Specified by:
      containsKey in interface Long2LongMap
      Parameters:
      k - the key.
      Returns:
      true if this function associates a value to key.
      See Also:
      Map.containsKey(Object)
      Implementation Specification:
      This implementation does a linear search over the entry set, finding an entry that has the key specified.

      If you override keySet(), you should probably override this method too to take advantage of the (presumably) faster key membership test your keySet() provides.

      If you override this method but not keySet(), then the returned key set will take advantage of this method.

    • containsValue

      public boolean containsValue​(long v)
      Returns true if this map maps one or more keys to the specified value.
      Specified by:
      containsValue in interface Long2LongMap
      See Also:
      Map.containsValue(Object)
      Implementation Specification:
      This implementation does a linear search over the entry set, finding an entry that has the value specified.

      If you override values(), you should probably override this method too to take advantage of the (presumably) faster value membership test your values() provides.

      If you override this method but not values(), then the returned values collection will take advantage of this method.

    • isEmpty

      public boolean isEmpty()
      Specified by:
      isEmpty in interface java.util.Map<java.lang.Long,​java.lang.Long>
    • mergeLong

      public final long mergeLong​(long key, long value, LongBinaryOperator remappingFunction)
      If the specified key is not already associated with a value, associates it with the given value. Otherwise, replaces the associated value with the results of the given remapping function.
      Specified by:
      mergeLong in interface Long2LongMap
      Parameters:
      key - key with which the resulting value is to be associated.
      value - the value to be merged with the existing value associated with the key or, if no existing value is associated with the key, to be associated with the key.
      remappingFunction - the function to recompute a value if present.
      See Also:
      Map.merge(Object, Object, java.util.function.BiFunction)
      Implementation Specification:
      This method just delegates to the interface default method, as the default method, but it is final, so it cannot be overridden.
    • keySet

      public LongSet keySet()
      Returns a type-specific-set view of the keys of this map.

      The view is backed by the set returned by Map.entrySet(). Note that no attempt is made at caching the result of this method, as this would require adding some attributes that lightweight implementations would not need. Subclasses may easily override this policy by calling this method and caching the result, but implementors are encouraged to write more efficient ad-hoc implementations.

      Specified by:
      keySet in interface Long2LongMap
      Specified by:
      keySet in interface java.util.Map<java.lang.Long,​java.lang.Long>
      Returns:
      a set view of the keys of this map; it may be safely cast to a type-specific interface.
      See Also:
      Map.keySet()
    • values

      public LongCollection values()
      Returns a type-specific-set view of the values of this map.

      The view is backed by the set returned by Map.entrySet(). Note that no attempt is made at caching the result of this method, as this would require adding some attributes that lightweight implementations would not need. Subclasses may easily override this policy by calling this method and caching the result, but implementors are encouraged to write more efficient ad-hoc implementations.

      Specified by:
      values in interface Long2LongMap
      Specified by:
      values in interface java.util.Map<java.lang.Long,​java.lang.Long>
      Returns:
      a set view of the values of this map; it may be safely cast to a type-specific interface.
      See Also:
      Map.values()
    • putAll

      public void putAll​(java.util.Map<? extends java.lang.Long,​? extends java.lang.Long> m)
      Specified by:
      putAll in interface java.util.Map<java.lang.Long,​java.lang.Long>
    • hashCode

      public int hashCode()
      Returns a hash code for this map. The hash code of a map is computed by summing the hash codes of its entries.
      Specified by:
      hashCode in interface java.util.Map<java.lang.Long,​java.lang.Long>
      Overrides:
      hashCode in class java.lang.Object
      Returns:
      a hash code for this map.
    • equals

      public boolean equals​(java.lang.Object o)
      Specified by:
      equals in interface java.util.Map<java.lang.Long,​java.lang.Long>
      Overrides:
      equals in class java.lang.Object
    • toString

      public java.lang.String toString()
      Overrides:
      toString in class java.lang.Object