put method

void put(
  1. K key,
  2. V value
)

存入缓存数据

Implementation

void put(K key, V value) {
  // 如果 key 已存在,更新
  if (_cache.containsKey(key)) {
    _cache[key] = _TimedEntry(value, expiration);
    _accessOrder.remove(key);
    _accessOrder.add(key);
    return;
  }

  // 清理过期数据
  _cleanupExpired();

  // 如果达到最大容量,淘汰最久未使用的
  if (_cache.length >= maxSize) {
    _evict();
  }

  _cache[key] = _TimedEntry(value, expiration);
  _accessOrder.add(key);
}