JavaScript is disabled on your browser.
  • Summary:
  • Nested Field Constructor
  • Method
  • | Detail:
  • Field Constructor
  • Method
Package: groovy.lang

[Java] Class MapWithDefault<K, V>

  • All Implemented Interfaces and Traits:
    Map

    public final class MapWithDefault<K, V>
    extends Object
    implements Map 

    A wrapper for Map which allows a default value to be specified using a closure. Normally not instantiated directly but used via the DGM withDefault method.

    Since:
    1.7.1

    • Method Detail

      • @Override
        public V get(Object key)

        Returns the value to which the specified key is mapped, or the default value as specified by the initializing closure if this map contains no mapping for the key. If autoGrow is true and the initializing closure is called, the map is modified to contain the new key and value so that the calculated value is effectively cached if needed again. Otherwise, the map will be unchanged.

      • <K, V> public static Map<K, V> newInstance(Map<K, V> m, Closure<V> initClosure)

        Decorates the given Map allowing a default value to be specified.

        Parameters:
        m - a Map to wrap
        initClosure - the closure which when passed the key returns the default value
        Returns:
        the wrapped Map

      • <K, V> public static Map<K, V> newInstance(Map<K, V> m, boolean autoGrow, boolean autoShrink, Closure<V> initClosure)

        Decorates the given Map allowing a default value to be specified. Allows the behavior to be configured using autoGrow and autoShrink parameters. The value of autoShrink doesn't alter any values in the initial wrapped map, but you can start with an empty map and use putAll if you really need the minimal backing map value.

        Parameters:
        m - a Map to wrap
        autoGrow - when true, also mutate the map adding in this value; otherwise, don't mutate the map, just return to calculated value
        autoShrink - when true, ensure the key will be removed if attempting to store the default value using put or putAll
        initClosure - the closure which when passed the key returns the default value
        Returns:
        the wrapped Map
        Since:
        4.0.1

      • @Override
        public V put(K key, V value)

        Associates the specified value with the specified key in this map. If autoShrink is true, the initializing closure is called and if it evaluates to the value being stored, the value will not be stored and indeed any existing value will be removed. This can be useful when trying to keep the memory requirements small for large key sets where only a spare number of entries differ from the default.

        Returns:
        the previous value associated with key if any, otherwise null.

      • @Override
        public void putAll(Map<? extends K, ? extends V> m)

  • Summary:
  • Nested Field Constructor
  • Method
  • | Detail:
  • Field Constructor
  • Method

Copyright © 2003-2025 The Apache Software Foundation. All rights reserved.

AltStyle によって変換されたページ (->オリジナル) /