cache策略(六)hashmap
这个东东还要多测试测试。按照这个接口写出来的。呵呵。
HashMapCache.java 如下:
package com.sillycat.easyview.plugin.cache.hashmap;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import com.sillycat.easyview.plugin.cache.base.Cache;
import com.sillycat.easyview.plugin.cache.base.Timestamper;
import com.sillycat.easyview.plugin.commons.exceptions.CacheException;
/**
* CACHE的内容直接放到HASHMap之中
*/
public class HashMapCache implements Cache {
private final Map hashMap = new HashMap();
private final String regionName;
public HashMapCache(String regionName) {
this.regionName = regionName;
}
public String getRegionName() {
return regionName;
}
public Object read(Object key) throws CacheException {
return hashMap.get(key);
}
public Object get(Object key) throws CacheException {
return hashMap.get(key);
}
public void update(Object key, Object value) throws CacheException {
put(key, value);
}
public void put(Object key, Object value) throws CacheException {
hashMap.put(key, value);
}
public void remove(Object key) throws CacheException {
hashMap.remove(key);
}
public void clear() throws CacheException {
hashMap.clear();
}
public void destroy() throws CacheException {
hashMap.clear();
}
public void lock(Object key) throws CacheException {
// local cache, so we use synchronization
}
public void unlock(Object key) throws CacheException {
// local cache, so we use synchronization
}
public long nextTimestamp() {
return Timestamper.next();
}
public int getTimeout() {
return Timestamper.ONE_MS * 60000; // ie. 60 seconds
}
public long getSizeInMemory() {
return -1;
}
public long getElementCountInMemory() {
return hashMap.size();
}
public long getElementCountOnDisk() {
return 0;
}
public Map toMap() {
return Collections.unmodifiableMap(hashMap);
}
public String toString() {
return "HashMapCache(" + regionName + ')';
}
}
HashMapCacheProvider.java 如下:
package com.sillycat.easyview.plugin.cache.hashmap;
import java.util.Properties;
import com.sillycat.easyview.plugin.cache.base.Cache;
import com.sillycat.easyview.plugin.cache.base.CacheProvider;
import com.sillycat.easyview.plugin.cache.base.Timestamper;
import com.sillycat.easyview.plugin.commons.exceptions.CacheException;
public class HashMapCacheProvider implements CacheProvider {
public Cache buildCache(String regionName)
throws CacheException {
return new HashMapCache(regionName);
}
public long nextTimestamp() {
return Timestamper.next();
}
public void start() throws CacheException {
}
public void stop() {
}
public boolean isMinimalPutsEnabledByDefault() {
return false;
}
public Properties getProperties() throws CacheException {
return null;
}
}
分享到:
相关推荐
hashmap实例 hashmap实例hashmap实例hashmap实例
HashMap介绍和使用
hashmap相关的面试题
HashMap数据结构,HashMap的构造方法,HashMap的put,HashMap的get
HashMap存放.doc
HashMap是一个散列桶(数组和链表),它存储的内容是键值对(key-value)映射HashMap采用了数组和链表的数据结构,能在查询和修改方便继承了数组的线性查找和链表的寻址修改HashMap是非synchronized,所以HashMap很快...
HashMap在性能优化方面采取多种策略,如扩容机制、负载因子调整等,以保持较低的冲突率和较高的查找效率,提升整体性能。 HashMap的线程安全机制。 HashMap通过synchronized关键字实现线程安全,确保多线程环境下的...
Hashmap详解
hashMap排序,hashmap使用还是比较频繁。这时自己写的一个实现hashmap排序的例子
Javascript实现和操作HashMap,压缩包里面有hashmap定义和操作的例子
hashmap的底层及源码解析,很适合大家的学习,不要积分。
HashMap类.rar
这个文档“ HashMap详解(通俗易懂)”很好的阐述了hashmap的底层数据结构示意,希望对学习java的人有帮助
HASHMAP缓存.txt HASHMAP缓存.txt
hashmap dfa关键字替换。 附上main测试明细结果,替换时间 ok ok ok ok 。
黑马程序员HashMap的笔记,面试必问,笔记很好,内容言简意赅,看完收获很多,希望能帮助大家的学习
模拟java中的HashMap类js类对象,可以与js的Array类对象配合使用
HashMap为什么是线程不安全的?如何解决HashMap的线程不安全问题?
数据库XML/HashMap转换
C语言实现hashMap,包含创建hashMap、插入hashMap、查找hashMap、删除hashMap,已经若干经典的hash函数。文章链接:https://blog.csdn.net/sxf1061700625/article/details/109594495