Class LRUMap<K,V>
java.lang.Object
com.fasterxml.jackson.databind.util.LRUMap<K,V>
- All Implemented Interfaces:
LookupCache<K,,V> Serializable
Helper for simple bounded 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.
Since Jackson 2.12, there has been pluggable LookupCache interface which
allows users, frameworks, provide their own cache implementations.
Snce Jackson 2.14, the implementation
- Evicts the least recently used entry when max size is reached
- Is thread-safe and does NOT require external synchronization
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final intprotected final PrivateMaxEntriesMap<K, V> protected final int -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidclear()Method for removing all contents this cache has.voidcontents(BiConsumer<K, V> consumer) NOTE: key is of type Object only to retain binary backwards-compatibilityputIfAbsent(K key, V value) protected Objectintsize()
-
Field Details
-
_initialEntries
protected final int _initialEntries -
_maxEntries
protected final int _maxEntries -
_map
-
-
Constructor Details
-
LRUMap
public LRUMap(int initialEntries, int maxEntries)
-
-
Method Details
-
put
- Specified by:
putin interfaceLookupCache<K,V>
-
putIfAbsent
- Specified by:
putIfAbsentin interfaceLookupCache<K,V> - Since:
- 2.5
-
get
Description copied from interface:LookupCacheNOTE: key is of type Object only to retain binary backwards-compatibility- Specified by:
getin interfaceLookupCache<K,V> - Parameters:
key-- Returns:
- value associated with key (can return null)
-
clear
public void clear()Description copied from interface:LookupCacheMethod for removing all contents this cache has.- Specified by:
clearin interfaceLookupCache<K,V>
-
size
public int size()- Specified by:
sizein interfaceLookupCache<K,V> - Returns:
- Number of entries currently in cache: may be approximate, only to be used for diagnostics, metrics reporting
-
contents
-
readResolve
-