class LRUCache提供两个接口:get(int key)和set(int key,value)
#include
using namespace std;
class LRUCache{
public:
LRUCache(int cap):current(0),capacity(cap){
A=new node[ca...
分类:
编程语言 时间:
2014-08-21 00:17:53
阅读次数:
383
在listview中如果每个item都有图片需要下载的话,我们就得考虑由于大量图片加载而导致的oom(out of memory)问题。
一个典型的做法是,下载图片的时候看看缓存中有没有该图片,如果缓存中没有,就从sd卡中读取,如果sd卡中还没有,再去服务器下载,下载下来的图片先放在sd卡中,并放到缓存中。如此周而复始。
这其中涉及到的就是缓存怎么设计,比较通用的做法就是使用LRU算法来缓存图片,先在手机端设置一个内存区域用于缓存图片,然后将我们下载的图片以键值对的形式丢进去,这样我们就能取到相应的图片啦,...
分类:
其他好文 时间:
2014-08-21 00:17:03
阅读次数:
248
Design and implement a data structure for Least Recently Used (LRU) cache. It should support the following operations:getandset.get(key)- Get the valu...
分类:
其他好文 时间:
2014-08-20 14:04:32
阅读次数:
250
上一篇分析了LinkedHashMap源码,这个Map集合除了拥有HashMap的大部分特性之外,还拥有链表的特点,即可以保持遍历顺序与插入顺序一致。另外,当我们将accessOrder设置为true时,可以使遍历顺序和访问顺序一致,其内部双向链表将会按照近期最少访问到近期最多访问的顺序排列Entry对象,这可以用来做缓存。
这篇文章分析的LruCache并不是jdk中的类,而是来自安卓...
分类:
其他好文 时间:
2014-08-20 10:33:46
阅读次数:
171
注:以下源码基于jdk1.7.0_11
之前的两篇文章通过源码分析了两种常见的Map集合,HashMap和Hashtable。本文将继续介绍另一种Map集合——LinkedHashMap。
顾名思义,LinkedHashMap除了是一个HashMap之外,还带有LinkedList的特点,也就是说能够保持遍历的顺序和插入的顺序一致,那么它是怎么做到的呢?下面我们开始分析。
...
分类:
其他好文 时间:
2014-08-19 11:03:54
阅读次数:
259
(1)最佳置换算法(OPT) :选择以后不再使用或在最长时间内不再被访问的内存页面予以淘汰。OPTimal replacement(2)先进先出置换算法(FIFO):选择最先进入内存的页面予以淘汰。(3)最久未使用淘汰算法(LRU):选择在最近一段时间内最久没有使用过的页,把它淘汰。least re...
分类:
其他好文 时间:
2014-08-17 16:51:42
阅读次数:
207
引子:我们平时总会有一个电话本记录所有朋友的电话,但是,如果有朋友经常联系,那些朋友的电话号码不用翻电话本我们也能记住,但是,如果长时间没有联系了,要再次联系那位朋友的时候,我们又不得不求助电话本,但是,通过电话本查找还是很费时间的。但是,我们大脑能够记住的东西是一定的,我们只能记住自己最熟悉的,而...
分类:
编程语言 时间:
2014-08-16 19:39:21
阅读次数:
345
现在由于项目需要,使用了LinkedHashMap,一开始由于很少用到Map,然后就直接使用了HashMap,在将数据成功存入之后取出来就出了问题,数据输出顺序没有按预期顺序输出,现在先看代码:文件内容(I0122120140811.chk):I01221|34622511|10317392891|12使用HashMap:packagecom...
分类:
其他好文 时间:
2014-08-14 17:11:59
阅读次数:
189
枚举转换工具
package com.util;
import java.lang.reflect.Method;
import java.util.LinkedHashMap;
import java.util.Map;
import org.apache.commons.lang3.reflect.MethodUtils;
/**
* 功能:枚举使用工具
* 作者:Gary Huan...
分类:
编程语言 时间:
2014-08-14 16:49:38
阅读次数:
294
启动方式:参数说明-d以守护程序(daemon)方式运行-u root指定用户,如果当前为 root ,需要使用此参数指定用户-P /tmp/a.pid保存PID到指定文件内存设置:参数说明-m 1024数据内存数量,不包含memcached本身占用,单位为 MB-M内存不够时禁止LRU,报错-n....
分类:
其他好文 时间:
2014-08-13 18:15:47
阅读次数:
303