protected boolean removeEldestEntry(Map.Entry<K,V> eldest)
描述 (Description)
如果此映射应删除其最旧条目,则java.util.LinkedHashMap.removeEldestEntry()方法返回true。 在将新条目插入地图后,put和putAll将调用此方法。 它为实现者提供了在每次添加新条目时删除最旧条目的机会。 如果映射表示高速缓存,则此选项非常有用:它允许映射通过删除过时条目来减少内存消耗。
声明 (Declaration)
以下是java.util.LinkedHashMap.removeEldestEntry()方法的声明
protected boolean removeEldestEntry(Map.Entry<K,V> eldest)
参数 (Parameters)
eldest - 地图中最近插入的条目,或者如果这是访问顺序的地图,则是最近访问的条目。 这是将被删除的条目,此方法返回true。 如果在put或putAll调用之前映射为空,导致此调用,则这将是刚插入的条目; 换句话说,如果地图包含单个条目,则最老的条目也是最新的。
返回值 (Return Value)
如果应从地图中删除最旧的条目,则此方法返回true; 如果应该保留,则为false。
异常 (Exception)
NA
例子 (Example)
以下示例显示了java.util.LinkedHashMap.removeEldestEntry()方法的用法。
package com.iowiki;
import java.util.*;
public class LinkedHashMapDemo {
private static final int MAX_ENTRIES = 5;
public static void main(String[] args) {
LinkedHashMap<Integer, String> lhm = new LinkedHashMap<Integer,
String>(MAX_ENTRIES + 1, .75F, false) {
protected boolean removeEldestEntry(Map.Entry<Integer, String> eldest) {
return size() > MAX_ENTRIES;
}
};
lhm.put(0, "H");
lhm.put(1, "E");
lhm.put(2, "L");
lhm.put(3, "L");
lhm.put(4, "O");
System.out.println("" + lhm);
}
}
让我们编译并运行上面的程序,这将产生以下结果 -
{0=H, 1=E, 2=L, 3=L, 4=O}