`
jiewo
  • 浏览: 47385 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

LRUcache的一种实现

    博客分类:
  • java
阅读更多
package com.ruijie.spl.usermanage.cache;

import java.util.Collection;
import java.util.LinkedHashMap;
import java.util.Map;

public class LRUCache<K,V> {
	
	int cacheSize = 0;
	float loadFactor = 0.75f;
	LinkedHashMap<K,V> map;

	public LRUCache(int cacheSize) {
		this.cacheSize = cacheSize;
		map = new LinkedHashMap<K,V>(cacheSize, loadFactor, true) {
			private static final long serialVersionUID = -1496596499685247267L;
			protected boolean removeEldestEntry(Map.Entry<K,V> eldest) {
				return size() > LRUCache.this.cacheSize;
			}
		};
	}
	public synchronized void clear(){
		map.clear();
	}
	public synchronized V get(K k){
		return map.get(k);
	}
	public synchronized void put(K k, V v){
		map.put(k,v);
	}
	public synchronized V remove(K k){
		return map.remove(k);
	}
	public synchronized int size(){
		return map.size();
	}
	public synchronized Collection<?> values(){
		return map.values();
	}
	public synchronized void addAll(Map<K,V> m){
		map.putAll(m);
	}	

}
分享到:
评论

相关推荐

    FrameAnimation帧动画以及LruCache优化的自定动画

    此DEMO主要是针对帧动画,实现方式有三种:1、FrameAnimation+xml;2、代码中加载每一帧;3、自定义动画,采用LruCache对每一帧图片进行内存优化防止图片oom。

    lrucacheleetcode-LRUCache:LeetCodeLRUCache(最近最少使用缓存)实现

    运用你所掌握的数据结构,设计和实现一个  LRU (最近最少使用) 缓存机制。它应该 获取数据 get(key) - 如果密钥 (key) 存在于缓存中,则获取密钥的值(总是正数) 写入数据 put(key, value) - 如果密钥不存在,则...

    详解Android的内存优化--LruCache

    LruCache是基于Lru算法实现的一种缓存机制。本文对LruCache的概念和实现原理进行介绍,通过实例分析和使用介绍,让大家更好的了解LruCache,下面跟着小编一起来看下吧

    LRUCache.jl:Julia中LRU缓存的实现

    LRU缓存是一种有用的关联数据结构(Julia中的AbstractDict ),具有设置的最大大小(通过元素数量或项目的自定义大小度量来度量)。 达到该大小后,将首先删除最近最少使用的项目。 锁确保数据访问不会导致争用情况...

    php-lrucache:PHP中的LRU缓存实现

    它是一种缓存类型,通常具有固定容量并丢弃最旧的条目。 如果您需要控制缓存内存使用,这将特别有用。 如果您想了解有关 LRU Cache 的更多详细信息,可以阅读, 进行了很好的解释。 另外,如果你想要更多有趣的信息...

    lrucacheleetcode-LRUCache-Leetcode-146:LRU(最近最少使用)缓存的两个独立实现。第一个利用“map.k

    LRUCache-Leetcode-146 Leetcode 第 146 题(中) 问题中使用的技术:Hashmap、设计 注意:代码中有两个单独的 LRU(最近最少使用)缓存实现。 第一个利用“map.keys()”,它按照插入顺序返回哈希图中的键。 就个人...

    Android代码-图片缓存的一种方法

    秉着不重复造轮子原则,这里我采用Volley LruCache DiskLruCache三个谷歌官方认可的库来实现网络图片三级缓存。并且以“one line”风格来实现将网络图片显示在ImageView上,而无需关心任何缓存细节。 类库下载 ...

    Android图片缓存之Lru算法(二)

    之前我们一直在使用SoftReference软引用,SoftReference是一种现在已经不再推荐使用的方式,因为从 Android 2.3 (API Level 9)开始,垃圾回收器会更倾向于回收持有软引用或弱引用的对象,这让软引用变得不再可靠,...

    浅谈Android LruCache的缓存策略

    一、Android中的缓存策略 一般来说,缓存策略主要包含缓存的添加、获取和删除这三类操作。...采用LRU算法的缓存有两种:LrhCache和DisLruCache分别用于实现内存缓存和硬盘缓存,其核心思想都是LRU缓存算法。 二、Lru

    uluru:一个简单,快速的LRU缓存实现

    一种简单,快速,最近最少使用(LRU)的缓存实现,用于Servo的样式系统。 LRUCache使用固定容量的阵列进行存储。 它提供O(1)插入和O(n)查找。 它不需要分配器,可以在no_std包装箱中使用。 它在100%安全的Rust中...

    core.cache:用于Clojure的缓存库,实现了各种缓存策略

    一个defcache宏,用于将CacheProtocol实现挂接到Clojure关联数据功能中。 一些基本缓存策略的实现 先进先出(FIFOCache) 最近最少使用(LRUCache) 最少使用(LUCache-有时称为“最少使用”) 生存时间...

    largeimageview:LargeImageView超大图的显示Demo

    其实对于图片还有一种加载情况,就是单个图片非常巨大且不允许压缩。比如显示:世界地图,清明上河图... 那么对于这种需求该如何实现? 首先不压缩,按照原图尺寸加载,那么屏幕肯定不够大,所以肯定是局部加载,...

    Android实现照片墙效果的实例代码

    因为随着GridView的滚动,加载的图片可能会越来越多,如果没有一种合理的机制对图片进行释放,那么当图片达到一定上限时,程序就必然会崩溃。 今天我们照片墙应用的实现,重点也是放在了如何防止由于图片过多导致...

    Android瀑布流照片墙实现 体验不规则排列的美感

    这个时候瀑布流布局的出现,就给人带来了耳目一新的感觉,这种布局虽然看上去貌似毫无规律,但是却有一种说不上来的美感,以至于涌现出了大批的网站和应用纷纷使用这种新颖的布局来设计界面。 记得我在之前已经写过...

    leetcode下载-orca-zhang:虎鲸

    实现了三种语言的版本,leetcode都是 超越100% 的解法,C++版的key重载巧妙地直接消除拷贝,性能强劲无敌 :lady_beetle:【】下一代mock库 对标Google的googlemock,跨平台支持mock所有函数(全部6大类函数),一个宏...

Global site tag (gtag.js) - Google Analytics