Java中的 LinkedHashMap removeEldestEntry() 方法
Java中的Java .util.LinkedHashMap.removeEldestEntry() 方法用于跟踪映射是否从映射中删除任何最旧的条目。因此,每次将新元素添加到 LinkedHashMap 时,都会从映射中删除最旧的条目。此方法通常在使用 put() 和 putall() 方法将元素添加到地图后调用。
此方法允许地图按照其返回值的指示修改自身。尽管允许该方法直接修改映射,但如果这样做,它必须返回 false,这表明映射不应尝试任何导致歧义的进一步修改。未指定在此方法中修改地图后返回 true 的效果。
当映射表示缓存时,这非常有用,它允许映射通过一个接一个地删除过时的条目来减少内存消耗。
句法:
private boolean removeEldestEntry(Map.Entry eldest)
参数:该方法接受一个参数eldest ,该参数指的是地图中最近最少插入的条目。如果映射是访问顺序,则eldest指的是最近最少访问的条目,如果此方法返回 true,则将被删除。如果在调用 put 或 putAll 之前映射为空,则这将是刚刚插入的条目;换句话说,如果映射包含单个条目,则最旧的条目也是最新和最新的条目。
返回值:如果要从映射中删除最旧的条目,则映射返回 true,如果不删除或保留条目,则返回 false。
下面的程序用于说明Java.util.LinkedHashMap.removeEldestEntry() 方法的工作:
Java
// Java program to illustrate removeEldestEntry()
import java.util.*;
public class Linked_Hash_Map_Demo {
// Refers to the max size of the map following which
// the removal takes place of the eldest entry
private static final int MAX = 6;
public static void main(String[] args)
{
// Creating the linked hashmap and implementing
// removeEldestEntry() to MAX size
LinkedHashMap li_hash_map =
new LinkedHashMap() {
protected boolean removeEldestEntry(Map.Entry eldest)
{
return size() > MAX;
}
};
// Adding elements using put()
li_hash_map.put(0, "Welcome");
li_hash_map.put(1, "To");
li_hash_map.put(2, "The");
li_hash_map.put(3, "World");
li_hash_map.put(4, "Of");
li_hash_map.put(5, "geeks");
System.out.println("" + li_hash_map);
// Adding more elements
li_hash_map.put(6, "GeeksforGeeks");
// Displaying the map after adding one more element
System.out.println("" + li_hash_map);
// Adding more elements
li_hash_map.put(7, "Hello");
// Displaying the map after adding one more element
System.out.println("" + li_hash_map);
}
}
{0=Welcome, 1=To, 2=The, 3=World, 4=Of, 5=geeks}
{1=To, 2=The, 3=World, 4=Of, 5=geeks, 6=GeeksforGeeks}
{2=The, 3=World, 4=Of, 5=geeks, 6=GeeksforGeeks, 7=Hello}
参考: https: Java/util/LinkedHashMap.html#removeEldestEntry-java.util.Map.Entry-