位置:首页 > 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}