public class CacheKey {
private String key;
public CacheKey(String key) {
this.key = key;
}
public String getKey() {
return key;
}
}
public class Cache {
private static Map<CacheKey, Object> cacheMap = new HashMap<>();
public static <T> void put(CacheKey key, T value) {
cacheMap.put(key, value);
}
public static <T> T get(CacheKey key) {
return (T) cacheMap.get(key);
}
public static boolean contains(CacheKey key) {
return cacheMap.containsKey(key);
}
public static void remove(CacheKey key) {
cacheMap.remove(key);
}
public static void clear() {
cacheMap.clear();
}
}
public class CacheConfig {
private int capacity;
private long expirationTime;
public CacheConfig(int capacity, long expirationTime) {
this.capacity = capacity;
this.expirationTime = expirationTime;
}
public int getCapacity() {
return capacity;
}
public long getExpirationTime() {
return expirationTime;
}
}
public class CacheManager {
private static CacheConfig cacheConfig;
public static void initialize(CacheConfig config) {
cacheConfig = config;
}
public static Cache createCache() {
return new Cache();
}
public static CacheConfig getCacheConfig() {
return cacheConfig;
}
}
public class Main {
public static void main(String[] args) {
CacheConfig config = new CacheConfig(100, 3600);
CacheManager.initialize(config);
Cache cache = CacheManager.createCache();
CacheKey key1 = new CacheKey("key1");
String value1 = "value1";
cache.put(key1, value1);
String result = cache.get(key1);
cache.remove(key1);
boolean contains = cache.contains(key1);
}
}