org.h2.util.SmallLRUCache Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of h2 Show documentation
Show all versions of h2 Show documentation
base on h2database 1.4.196. for more information, see http://h2database.com/
/*
* Copyright 2004-2018 H2 Group. Multiple-Licensed under the MPL 2.0,
* and the EPL 1.0 (http://h2database.com/html/license.html).
* Initial Developer: H2 Group
*/
package org.h2.util;
import java.util.LinkedHashMap;
import java.util.Map;
/**
* This class implements a small LRU object cache.
*
* @param the key
* @param the value
*/
public class SmallLRUCache extends LinkedHashMap {
private static final long serialVersionUID = 1L;
private int size;
private SmallLRUCache(int size) {
super(size, (float) 0.75, true);
this.size = size;
}
/**
* Create a new object with all elements of the given collection.
*
* @param the key type
* @param the value type
* @param size the number of elements
* @return the object
*/
public static SmallLRUCache newInstance(int size) {
return new SmallLRUCache<>(size);
}
public void setMaxSize(int size) {
this.size = size;
}
@Override
protected boolean removeEldestEntry(Map.Entry eldest) {
return size() > size;
}
}