Class LFUCache<K,V>

Type Parameters:
K - 键类型
V - 值类型
All Implemented Interfaces:
Serializable, Iterable<V>, Cache<K,V>

public class LFUCache<K,V> extends StampedCache<K,V>
LFU(least frequently used) 最少使用率缓存 根据使用次数来判定对象是否被持续缓存 使用率是通过访问次数计算的。 当缓存满时清理过期对象。 清理后依旧满的情况下清除最少访问(访问计数最小)的对象并将其他对象的访问数减去这个最小访问数,以便新对象进入后可以公平计数。
Since:
Java 17+
Author:
Kimi Liu
See Also:
  • Constructor Details

    • LFUCache

      public LFUCache(int capacity)
      构造
      Parameters:
      capacity - 容量
    • LFUCache

      public LFUCache(int capacity, long timeout)
      构造
      Parameters:
      capacity - 容量
      timeout - 过期时长
  • Method Details

    • pruneCache

      protected int pruneCache()
      清理过期对象。 清理后依旧满的情况下清除最少访问(访问计数最小)的对象并将其他对象的访问数减去这个最小访问数,以便新对象进入后可以公平计数。
      Specified by:
      pruneCache in class AbstractCache<K,V>
      Returns:
      清理个数