使用Java中的java.util.LinkedHashMap.removeEldestEntry()方法来跟踪Map是否从Map中删除了最老的条目。因此,每次将新元素添加到LinkedHashMap时,最旧的条目都会从Map中删除。通常在使用put()和putall()方法将元素添加到Map中之后调用此方法。
此方法允许Map按照其返回值的指示修改自身。尽管允许该方法直接修改Map,但如果这样做,它必须返回false,这表明该Map不应尝试任何进一步的修改而导致歧义的事实。未指定从此方法修改映射后返回true的效果。
当映射表表示一个高速缓存时,此函数非常有用,在该高速缓存表中,它允许映射表通过依次删除陈旧条目来减少内存消耗。
用法:
private boolean removeEldestEntry(Map.Entry eldest)
参数:该方法接受一个最老的参数,该参数表示映射中最近插入的条目。如果映射具有访问顺序,则最旧引用最近访问最少的条目,如果此方法返回true,则将其删除。如果在put或putAll调用之前映射为空,则这将是刚刚插入的条目;换句话说,如果Map包含单个条目,则最旧的条目也是最新的条目。
返回值:如果将最旧的条目从映射中删除,则映射返回true;如果不删除或保留该条目,则返回false。
下面的程序用于说明java.util.LinkedHashMap.removeEldestEntry()方法的用法:
// 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<Integer, String> li_hash_map =
new LinkedHashMap<Integer, String>() {
protected boolean removeEldestEntry(Map.Entry<Integer, String> 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");
// Displying the map after adding one more element
System.out.println("" + li_hash_map);
// Adding more elements
li_hash_map.put(7, "Hello");
// Displying 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}
相关用法
- Java LinkedHashMap get()用法及代码示例
- Java LinkedHashMap clear()用法及代码示例
- Java LinkedHashMap containsKey()用法及代码示例
- Java Java lang.Long.byteValue()用法及代码示例
- Java Java lang.Long.reverse()用法及代码示例
- Java Java.util.Collections.disjoint()用法及代码示例
- Java Java.util.Collections.rotate()用法及代码示例
- Java Java lang.Long.numberOfTrailingZeros()用法及代码示例
- Java Java lang.Long.lowestOneBit()用法及代码示例
- Java Java lang.Long.numberOfLeadingZeros()用法及代码示例
注:本文由纯净天空筛选整理自Chinmoy Lenka大神的英文原创作品 LinkedHashMap removeEldestEntry() Method in Java。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。