com.fasterxml.jackson.databind.util

Class LRUMap<K,V>

  • All Implemented Interfaces:
    Serializable, Cloneable, Map<K,V>


    public class LRUMap<K,V>
    extends LinkedHashMap<K,V>
    implements Serializable
    Helper for simple bounded LRU maps used for reusing lookup values.

    Note that serialization behavior is such that contents are NOT serialized, on assumption that all use cases are for caching where persistence does not make sense. The only thing serialized is the cache size of Map.

    NOTE: the only reason we extend LinkedHashMap instead of aggregating it is that this way we can override removeEldestEntry(java.util.Map.Entry<K, V>). Access, however, MUST be done using single-element access methods (or matching xxxAll() methods that call them); access via iterators are not guaranteed to work.

    NOTE: since version 2.4, uses ReentrantReadWriteLock to improve concurrent access.

    See Also:
    Serialized Form
    • Field Detail

      • _readLock

        protected final transient Lock _readLock
      • _writeLock

        protected final transient Lock _writeLock
      • _maxEntries

        protected final transient int _maxEntries
      • _jdkSerializeMaxEntries

        protected transient int _jdkSerializeMaxEntries
        Ugly hack, to work through the requirement that _value is indeed final, and that JDK serialization won't call ctor(s) if Serializable is implemented.
        Since:
        2.1
    • Constructor Detail

      • LRUMap

        public LRUMap(int initialEntries,
              int maxEntries)

Copyright © 2014 FasterXML. All Rights Reserved.