Class ModCountMap<K,​V>

  • Type Parameters:
    K - Type of the map keys.
    V - Type of the map values.
    All Implemented Interfaces:
    Map<K,​V>

    public final class ModCountMap<K,​V>
    extends Object
    implements Map<K,​V>
    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
    • Method Detail

      • 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>
      • 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>
      • 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>
      • 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>
      • 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.