62,634
社区成员




import java.util.HashMap;
import java.util.Map;
public class SimpleCache {
private Map enduring = new HashMap();
private Map recycling = new HashMap();
private int maxCapacity;
public SimpleCache(int maxCapacity) {
this.maxCapacity = maxCapacity;
}
public synchronized Object get(String key) {
Object value = enduring.get(key);
if (value == null) {
value = recycling.remove(key);
if (value != null) {
put(key, value);
}
}
return value;
}
public synchronized void put(String key, Object value) {
if (enduring.size() >= maxCapacity) {
if (recycling.size() >= (maxCapacity * 2)) {
recycling.clear();
}
recycling.putAll(enduring);
enduring.clear();
}
enduring.put(key, value);
}
public synchronized void clear() {
enduring.clear();
recycling.clear();
}
@Override
public String toString() {
return enduring.toString() + "\r\n" + recycling.toString();
}
}