如果此映射应删除其最旧的条目,则 java.util.LinkedHashMap.removeEldestEntry() 方法将返回 true。在将新条目插入映射后, put 和 putAll 会调用此方法。它为实现者提供了每次添加新条目时删除最旧条目的机会。如果映射表示缓存,这非常有用:它允许映射通过删除陈旧条目来减少内存消耗。
语法
protected boolean removeEldestEntry(Map.Entry<K,V> eldest)
这里,K 和 V 是键的类型,
参数
eldest | 最近最少插入的条目映射,或者如果这是按访问顺序的映射,则为最近最少访问的条目。如果此方法返回 true,则这是将被删除的条目。如果在导致此调用的 put 或 putAll 调用之前映射为空,则这将是刚刚插入的条目;换句话说,如果map包含单个条目,则最旧的条目也是最新的。 |
返回值
返回 true是否应从map中删除最旧的条目;如果应保留,则为 false。
异常
无示例:
在下面的示例中,java.util.LinkedHashMap.removeEldestEntry() 方法用于检查给定映射是否应删除其最旧的条目。
import java.util.*;
public class MyClass {
private static final int MAX_ENTRIES = 4;
public static void main(String[] args) {
//创建一个linkedhashmap
LinkedHashMap<Integer, String> MyMap = new LinkedHashMap<Integer, String>(){
protected boolean removeEldestEntry(Map.Entry<Integer, String> eldest) {
return size() > MAX_ENTRIES;
}
};
//填充map
//当map大小增加超过
//MAX_ENTRIES,removeEldestEntry方法为
//调用以删除最旧的条目
MyMap.put(101, "John");
MyMap.put(102, "Marry");
MyMap.put(103, "Kim");
MyMap.put(104, "Jo");
MyMap.put(105, "Sam");
MyMap.put(106, "Ramesh");
//打印map内容
System.out.println("MyMap contains: " + MyMap);
}
}
上述代码的输出将是:
MyMap contains: {103=Kim, 104=Jo, 105=Sam, 106=Ramesh}