//
// @(#)Position.java 1.00 4/1/2002
//
// Copyright 2002 Zachary DelProposto. All rights reserved.
// Use is subject to license terms.
//
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 2 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
// Or from http://www.gnu.org/
//
package dip.misc;
import java.util.LinkedHashMap;
import java.util.Map;
/**
* Implements an LRU Cache; based on LinkedHashMap from JDK1.4
*
*
*
*
*/
public class LRUCache extends LinkedHashMap
{
private int maxsize;
/**
* Creates an LRUCache with the given size.
*
*
*/
public LRUCache(int maxsize)
{
super( (maxsize*4/3) + 1, 0.75f, true);
this.maxsize = maxsize;
}// LRUCache()
public Object put(Object key, Object value)
{
return super.put(key, value);
}
/**
* Override to enable elimination of oldest entries
*/
protected boolean removeEldestEntry(Map.Entry eldest)
{
return (size() > maxsize);
}// removeEldestEntry()
}// class LRUCache