首页 > 移动平台 > 详细

Android LruCache原理

时间:2018-01-09 15:41:52      阅读:382      评论:0      收藏:0      [点我收藏+]

LruCache原理:

维护一个缓存对象列表,按照访问顺序进行对象排列,就是将一直没有访问的对象放到队尾,即将淘汰。而最近访问的对象放在队头,最后淘汰。而这个队列主要是通过LinkedHashMap实现。
技术分享图片

LinkedHashMap:(默认为插入排序,即输入与输出顺序一致)

继承于HashMap,使用双向链表来存储Map中的Entry顺序关系。顺序有2,一是访问顺序,一是插入顺序,可以由其构造方法LinkedHashMap(int initialCapacity,float loadFactor,boolean accessOrder:true表示顺序访问,false是插入排序)指定。所以,get,put,remove等操作,它除了做HashMap的操作,还需要调整Entry顺序列表的工作。

Android中的LruCache将LinkedHashMap中的默认顺序设置为访问顺序,每次调用get,则将该对象移到链表的头部,调用put插入新的对象到链表头部。当内存缓存达到最大值时,就将链表尾部的对象移除。每次put或者remove,都需要判断缓存大小是否足够trimToSize。

注:链表头部-最近使用或者插入的;链表尾部-最近很少使用的。

本文图片来自于网络,若有侵权请联系本人,必删!

Android LruCache原理

原文:https://www.cnblogs.com/hacjy/p/8251508.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!