位置:首頁 > Java技術 > Java.util包 > java.util.LinkedHashMap.removeEldestEntry()方法實例

java.util.LinkedHashMap.removeEldestEntry()方法實例

java.util.LinkedHashMap.removeEldestEntry() 方法如果此映射移除其最舊的條目返回true。此方法通過認沽及的putAll插入新進入映射之後被調用。它提供了實現者有機會到一個新的添加,每次刪除最舊的條目。如果映射代表了緩存,這非常有用:它允許映射通過刪除舊條目來減少內存消耗。

聲明

以下是java.util.LinkedHashMap.removeEldestEntry()方法的聲明

protected boolean removeEldestEntry(Map.Entry<K,V> eldest)

參數

  • eldest -- 在映射中的至少最近插入的條目,或者如果這是一個訪問順序圖,最近最少訪問的條目。這是將要被移除的將,此方法返回true。如果映射是之前的認沽或調用的putAll導致此調用空的,這將是剛插入的條目;換句話說,如果映射中包含一個條目,該條目eldest也是最新的。

返回值

如果舊的條目從映射中刪除此方法返回true;如果其應予以保留。

異常

  • NA

例子

下麵的示例演示java.util.LinkedHashMap.removeEldestEntry()方法的用法。

package com.yiibai;

import java.util.*;

public class LinkedHashMapDemo {

   private static final int MAX_ENTRIES = 5;

   public static void main(String[] args) {
      LinkedHashMap lhm = new LinkedHashMap(MAX_ENTRIES + 1, .75F, false) {

         protected boolean removeEldestEntry(Map.Entry 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}