以下是一个基本的Java缓存实现,可以存储key-value对,并设置过期时间。在添加一个key-value对时,可以指定过期时间,这个过期时间是从当前时间开始计算的。

import java.util.HashMap;
import java.util.Map;

public class Cache {

    private Map<String, CacheObject> cacheMap;

    public Cache() {
        this.cacheMap = new HashMap<>();
    }

    public void put(String key, Object value, int expirationInSeconds) {
        long expirationTime = System.currentTimeMillis() + expirationInSeconds * 1000L;
        CacheObject cacheObject = new CacheObject(value, expirationTime);
        cacheMap.put(key, cacheObject);
    }

    public Object get(String key) {
        CacheObject cacheObject = cacheMap.get(key);
        if (cacheObject != null && cacheObject.expirationTime > System.currentTimeMillis()) {
            return cacheObject.value;
        }
        cacheMap.remove(key);
        return null;
    }

    private class CacheObject {
        private Object value;
        private long expirationTime;

        public CacheObject(Object value, long expirationTime) {
            this.value = value;
            this.expirationTime = expirationTime;
        }
    }

}

使用示例:

Cache cache = new Cache();

// 添加一个key-value对,设置过期时间为10秒钟
cache.put("key", "value", 10);

// 获取key对应的value
Object value = cache.get("key");

// 等待10秒钟,再次获取key对应的value
Thread.sleep(10000);
Object value2 = cache.get("key"); // 返回null,因为已经过期
``
帮我用Java写一个缓存用于存储过期时间

原文地址: https://www.cveoy.top/t/topic/cvEW 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录