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>

public class LRUMap<K,V> extends LinkedHashMap<K,V>
LRUアルゴリズムを持つMap実装クラス。 指定された最大容量を超過する場合、 最も参照されない期間が長いエントリが削除される。
Author:
T.Kawasaki
See Also:
  • 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

      public LRUMap(int maxSize, LRUMap.RemoveListener<K,V> listener)
      コンストラクタ。
      Parameters:
      maxSize - 最大サイズ
      listener - リスナー
    • LRUMap

      public LRUMap(int maxSize)
      コンストラクタ。
      Parameters:
      maxSize - 最大サイズ
  • Method Details

    • removeEldestEntry

      protected boolean removeEldestEntry(Map.Entry<K,V> eldest)
      現在のサイズが最大サイズより大きい場合、真を返却する。
      Overrides:
      removeEldestEntry in class LinkedHashMap<K,V>