Package nablarch.core.util.map
Class LRUMap<K,V>
java.lang.Object
java.util.AbstractMap<K,V>
java.util.HashMap<K,V>
java.util.LinkedHashMap<K,V>
nablarch.core.util.map.LRUMap<K,V>
- Type Parameters:
K
- キーの型V
- 値の型
- All Implemented Interfaces:
Serializable
,Cloneable
,Map<K,
V>
LRUアルゴリズムを持つ
Map
実装クラス。
指定された最大容量を超過する場合、
最も参照されない期間が長いエントリが削除される。- Author:
- T.Kawasaki
- See Also:
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic interface
LRUアルゴリズムにより、エントリが削除された場合に呼び出されるコールバックインタフェース。Nested classes/interfaces inherited from class java.util.AbstractMap
AbstractMap.SimpleEntry<K extends Object,
V extends Object>, AbstractMap.SimpleImmutableEntry<K extends Object, V extends Object> -
Constructor Summary
ConstructorDescriptionLRUMap
(int maxSize) コンストラクタ。LRUMap
(int initialCapacity, float loadFactor, int maxSize) コンストラクタ。LRUMap
(int initialCapacity, float loadFactor, int maxSize, LRUMap.RemoveListener<K, V> listener) コンストラクタ。 初期容量<最大サイズの場合、最大サイズが初期容量となる。LRUMap
(int initialCapacity, int maxSize) コンストラクタ。LRUMap
(int maxSize, LRUMap.RemoveListener<K, V> listener) コンストラクタ。 -
Method Summary
Modifier and TypeMethodDescriptionprotected boolean
removeEldestEntry
(Map.Entry<K, V> eldest) 現在のサイズが最大サイズより大きい場合、真を返却する。Methods inherited from class java.util.LinkedHashMap
clear, containsValue, entrySet, forEach, get, getOrDefault, keySet, replaceAll, values
Methods inherited from class java.util.HashMap
clone, compute, computeIfAbsent, computeIfPresent, containsKey, isEmpty, merge, put, putAll, putIfAbsent, remove, remove, replace, replace, size
Methods inherited from class java.util.AbstractMap
equals, hashCode, toString
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
Methods inherited from interface java.util.Map
compute, computeIfAbsent, computeIfPresent, containsKey, equals, hashCode, isEmpty, merge, put, putAll, putIfAbsent, remove, remove, replace, replace, size
-
Constructor Details
-
LRUMap
public LRUMap(int initialCapacity, float loadFactor, int maxSize, LRUMap.RemoveListener<K, V> listener) コンストラクタ。 初期容量<最大サイズの場合、最大サイズが初期容量となる。- Parameters:
initialCapacity
- 初期容量loadFactor
- 負荷係数maxSize
- 最大サイズlistener
- リスナー
-
LRUMap
public LRUMap(int initialCapacity, float loadFactor, int maxSize) コンストラクタ。- Parameters:
initialCapacity
- 初期容量loadFactor
- 負荷係数maxSize
- 最大サイズ
-
LRUMap
public LRUMap(int initialCapacity, int maxSize) コンストラクタ。- Parameters:
initialCapacity
- 初期容量maxSize
- 最大サイズ
-
LRUMap
コンストラクタ。- Parameters:
maxSize
- 最大サイズlistener
- リスナー
-
LRUMap
public LRUMap(int maxSize) コンストラクタ。- Parameters:
maxSize
- 最大サイズ
-
-
Method Details
-
removeEldestEntry
現在のサイズが最大サイズより大きい場合、真を返却する。- Overrides:
removeEldestEntry
in classLinkedHashMap<K,
V>
-