使用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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。