package com.bingo.frame;
import java.util.Deque;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.LinkedList;
import java.util.Map;
/**
* c.构建一个Cache对象, 用于在内存中存储数据
* 1)存储结构: 散列表
* 2)存储算法: FIFO
* @author bingo
*/
public class BingoTest {
class SimpleFIFOCache {
private int maxCap;
public SimpleFIFOCache(int maxCap) {
this.maxCap = maxCap;
}
//通过此cacheMap存储对象
private Map<Object, Object> cacheMap = new HashMap<Object, Object>();
//通过此队列集合记录元素顺序
private Deque<Object> keyOrders = new LinkedList<Object>();
//取出对象
public Object getObject(Object key) {
return cacheMap.get(key);
}
//存入对象
public void putObject(Object key, Object value) {
//1. 记录key对象, 队列先进先出
keyOrders.addLast(key);
//2. 判定容器是否已满, 满了移除队列中的第一个元素
if (cacheMap.size() == maxCap) {
//移除队列中最早key
Object oldKey = keyOrders.removeFirst();
//移除cache中对象
cacheMap.remov
构建一个Cache对象在内存中存储数据
最新推荐文章于 2022-04-17 18:26:04 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)