返回介绍

4.6 LruCache.put(K key, V value)

发布于 2024-12-23 21:09:30 字数 607 浏览 0 评论 0 收藏
public final V put(K key, V value) {
  ...
  synchronized (this) {
    ...
    // 拿到键值对,计算出在容量中的相对长度,然后加上
    size += safeSizeOf(key, value);
    ...
  }
	...
  trimToSize(maxSize);
  return previous;
}

记住几点:

  • put 开始的时候确实是把值放入 LinkedHashMap 了, 不管超不超过你设定的缓存容量
  • 然后根据 safeSizeOf 方法计算 此次添加数据的容量是多少,并且加到 size 里 。
  • 说到 safeSizeOf 就要讲到 sizeOf(K key, V value) 会计算出此次添加数据的大小 。
  • 直到 put 要结束时,进行了 trimToSize 才判断 size 是否 大于 maxSize 然后进行最近很少访问数据的移除。

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。