Class ModCountMap<K,V>

java.lang.Object
de.xima.fc.common.collection.ModCountMap<K,V>
Type Parameters:
K - Type of the map keys.
V - Type of the map values.
All Implemented Interfaces:
Serializable, Map<K,V>

public final class ModCountMap<K,V> extends Object implements Map<K,V>, Serializable
A map that keeps track of the number of modifications made to it. The only guarantee is that the modification increases by some amount when the deque is modified. No guarantees are made about the exact amount by which the modification counter increases. This class is not thread-safe.
Since:
8.2.0
See Also:
  • Method Details

    • clear

      public void clear()
      Specified by:
      clear in interface Map<K,V>
    • compute

      public V compute(K key, BiFunction<? super K, ? super V, ? extends V> remappingFunction)
      Specified by:
      compute in interface Map<K,V>
    • computeIfAbsent

      public V computeIfAbsent(K key, Function<? super K, ? extends V> mappingFunction)
      Specified by:
      computeIfAbsent in interface Map<K,V>
    • computeIfPresent

      public V computeIfPresent(K key, BiFunction<? super K, ? super V, ? extends V> remappingFunction)
      Specified by:
      computeIfPresent in interface Map<K,V>
    • containsKey

      public boolean containsKey(Object key)
      Specified by:
      containsKey in interface Map<K,V>
    • containsValue

      public boolean containsValue(Object value)
      Specified by:
      containsValue in interface Map<K,V>
    • entrySet

      public Set<Map.Entry<K,V>> entrySet()
      Specified by:
      entrySet in interface Map<K,V>
    • equals

      public boolean equals(Object obj)
      Specified by:
      equals in interface Map<K,V>
      Overrides:
      equals in class Object
    • forEach

      public void forEach(BiConsumer<? super K, ? super V> action)
      Specified by:
      forEach in interface Map<K,V>
    • get

      public V get(Object key)
      Specified by:
      get in interface Map<K,V>
    • getOrDefault

      public V getOrDefault(Object key, V defaultValue)
      Specified by:
      getOrDefault in interface Map<K,V>
    • hashCode

      public int hashCode()
      Specified by:
      hashCode in interface Map<K,V>
      Overrides:
      hashCode in class Object
    • isEmpty

      public boolean isEmpty()
      Specified by:
      isEmpty in interface Map<K,V>
    • keySet

      public Set<K> keySet()
      Specified by:
      keySet in interface Map<K,V>
    • merge

      public V merge(K key, V value, BiFunction<? super V, ? super V, ? extends V> remappingFunction)
      Specified by:
      merge in interface Map<K,V>
    • modCount

      public long modCount()
      Returns the number of modifications made to this map.
      Returns:
      The number of modifications made to this map.
    • modCounter

      public Counter.LongCounter modCounter()
      Returns the modification counter of this map.
      Returns:
      The modification counter of this map.
    • put

      public V put(K key, V value)
      Specified by:
      put in interface Map<K,V>
    • putAll

      public void putAll(Map<? extends K, ? extends V> m)
      Specified by:
      putAll in interface Map<K,V>
    • putIfAbsent

      public V putIfAbsent(K key, V value)
      Specified by:
      putIfAbsent in interface Map<K,V>
    • remove

      public V remove(Object key)
      Specified by:
      remove in interface Map<K,V>
    • remove

      public boolean remove(Object key, Object value)
      Specified by:
      remove in interface Map<K,V>
    • replace

      public boolean replace(K key, V oldValue, V newValue)
      Specified by:
      replace in interface Map<K,V>
    • replace

      public V replace(K key, V value)
      Specified by:
      replace in interface Map<K,V>
    • replaceAll

      public void replaceAll(BiFunction<? super K, ? super V, ? extends V> function)
      Specified by:
      replaceAll in interface Map<K,V>
    • size

      public int size()
      Specified by:
      size in interface Map<K,V>
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • values

      public Collection<V> values()
      Specified by:
      values in interface Map<K,V>
    • wrap

      public static <K,V> ModCountMap<K,V> wrap(Map<K,V> map)
      Wraps a map in a ModCountMap that keeps track of the number of modifications made to it. May not wrap if already wrapped.
      Type Parameters:
      K - Key type.
      V - Value type.
      Parameters:
      map - The map to wrap.
      Returns:
      The wrapped map.
    • wrap

      public static <K,V> ModCountMap<K,V> wrap(Map<K,V> map, Counter.LongCounter modCounter)
      Wraps a map in a ModCountMap that keeps track of the number of modifications made to it. May not wrap if already wrapped in a ModCountMap with the same modCounter.
      Type Parameters:
      K - Key type.
      V - Value type.
      Parameters:
      map - The map to wrap.
      modCounter - The modification counter to use.
      Returns:
      The wrapped map.