本地cache简单代码实现

简介:


import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;

/**
 * 本地cache工具
 *
 * @author yanek
 *
 */
public class LocalCache {

 private static Map<String, Object> cacheMap = new ConcurrentHashMap<String, Object>();

 public static void destoryCacheMap() {
  cacheMap = null;
 }

 public static Map<String, Object> getCacheMap() {
  return cacheMap;
 }

 public static void set(String key, Object values) {
  cacheMap.put(key, values);
 }

 public static Object get(String key) {
  return cacheMap.get(key);
 }

 public static String getString(String key) {
  return (String) cacheMap.get(key);
 }

 public static Object getToEmpty(String key) {
  Object o = cacheMap.get(key);
  if (o == null)
   return "";
  else
   return o;
 }

 public static void remove(String key) {
  cacheMap.remove(key);
 }

 public static void clear() {
  cacheMap.clear();
 }

 public static void main(String[] args) {
  
  
  LocalCache.set("001","001");
  LocalCache.set("002","002");
  LocalCache.set("003","003");
  
  System.out.println(LocalCache.get("001"));
  System.out.println(LocalCache.get("002"));
  System.out.println(LocalCache.get("003"));
  
  

 }

}

目录
相关文章
|
2月前
|
存储 算法 索引
HashMap底层数据结构及其增put删remove查get方法的代码实现原理
HashMap 是基于数组 + 链表 + 红黑树实现的高效键值对存储结构。默认初始容量为16,负载因子为0.75。当存储元素超过容量 * 负载因子时,会进行扩容。HashMap 使用哈希算法计算键的索引位置,通过链表或红黑树解决哈希冲突,确保高效存取。插入、获取和删除操作的时间复杂度接近 O(1)。
29 0
|
7月前
|
缓存 Python
如何使用`functools`模块中的`lru_cache`来进行函数结果缓存?
如何使用`functools`模块中的`lru_cache`来进行函数结果缓存?
100 0
|
7月前
|
存储 缓存 Java
java如何实现一个LRU(最近最少使用)缓存? 要求:设计一个LRU缓存,支持get和put操作。当缓存满时,需要淘汰最近最少使用的元素。要求使用双向链表+哈希表的数据结构来实现,并保证get和put操作的时间复杂度为O(1)。
java如何实现一个LRU(最近最少使用)缓存? 要求:设计一个LRU缓存,支持get和put操作。当缓存满时,需要淘汰最近最少使用的元素。要求使用双向链表+哈希表的数据结构来实现,并保证get和put操作的时间复杂度为O(1)。
67 1
|
7月前
|
C++
面试题:delete和free区别
面试题:delete和free区别
86 0
|
7月前
|
存储 缓存 Java
146. LRU 缓存 --力扣 --JAVA
​ 请你设计并实现一个满足  LRU (最近最少使用) 缓存 约束的数据结构。 实现 LRUCache 类: LRUCache(int capacity) 以 正整数 作为容量 capacity 初始化 LRU 缓存 int get(int key) 如果关键字 key 存在于缓存中,则返回关键字的值,否则返回 -1 。 void put(int key, int value) 如果关键字 key 已经存在,则变更其数据值 value ;如果不存在,则向缓存中插入该组 key-value 。如果插入操作导致关键字数量超过 capacity ,则应该 逐出 最久未使用的关键字。 函数 get
51 0
|
7月前
|
存储 Java 索引
138. 随机链表的复制 --力扣 --JAVA
​ 给你一个长度为 n 的链表,每个节点包含一个额外增加的随机指针 random ,该指针可以指向链表中的任何节点或空节点。 构造这个链表的 深拷贝。 深拷贝应该正好由 n 个 全新 节点组成,其中每个新节点的值都设为其对应的原节点的值。新节点的 next 指针和 random 指针也都应指向复制链表中的新节点,并使原链表和复制链表中的这些指针能够表示相同的链表状态。复制链表中的指针都不应指向原链表中的节点 。 例如,如果原链表中有 X 和 Y 两个节点,其中 X.random --> Y 。那么在复制链表中对应的两个节点 x 和 y ,同样有 x.random --> y 。 返回复制
54 0
|
内存技术
cache基础
cache
128 0
|
存储 缓存
cache_t结构分析
紧接着我们来分析类结构体中cache_t, 只从单词来看就能猜出来是与缓存有关. 下面我们先看cache_t的源码:
164 0
cache_t结构分析
实验2 使用 LRU 方法更新 Cache
了解和掌握寄存器分配和内存分配的有关技术。
实验2 使用 LRU 方法更新 Cache
|
存储 缓存 API
LeetCode——LRU 缓存机制(借助Map)
LeetCode——LRU 缓存机制(借助Map)
97 0
LeetCode——LRU 缓存机制(借助Map)