zoukankan      html  css  js  c++  java
  • LRU:最近最久未使用

    LRU:最近最久未使用
    LinkedHashMap默认是不删除元素的,通过重写removeEldestEnrtry来实现最大容量
     1 public class LRUMap<K,V> extends LinkedHashMap {
     2 
     3     private static final long serialVersionUID = 7712857012453857193L;
     4 
     5     //最大容量
     6     public static int MAX_SIZE=20;
     7 
     8     public LRUMap(int initialCapacity, float loadFactor,boolean accessOrder){
     9         super(initialCapacity, loadFactor, accessOrder);
    10     }
    11 
    12     /**
    13      * 如果Map的尺寸大于设定的最大容量,返回true
    14      * 再新加入对象时删除最老的对象
    15      */
    16     @Override
    17     protected boolean removeEldestEntry(Map.Entry eldest) {
    18         return size()>MAX_SIZE;
    19     }
    20 
    21     public static void main(String[] args) {
    22         Map<Integer,Integer> map = new LRUMap<>(10,0.75f,true);
    23         LRUMap.MAX_SIZE=3;
    24         map.put(1,1);
    25         map.put(2,2);
    26         map.put(3,3);
    27         map.put(4,4);
    28         map.put(5,5);
    29         System.out.println(map.size());
    30         for (Map.Entry<Integer,Integer> entry:map.entrySet()){
    31             System.out.println(entry.getKey()+":"+entry.getValue());
    32         }
    33     }
    34 }

    运行结果:

    3
    3:3
    4:4
    5:5

    阁下何不同风起,扶摇直上九万里。
  • 相关阅读:
    使用 GitHub, Jekyll 打造自己的免费独立博客
    如何解决数据科学计数法在数据库中的显示
    RDF
    C# 在 4.0 以后一共有3种创建线程的方式
    C#多线程
    1、框架概述
    3、IDEA 中使用 Maven
    2、Maven 核心概念
    1、Maven 概述
    JDK动态代理
  • 原文地址:https://www.cnblogs.com/mlyun/p/10838152.html
Copyright © 2011-2022 走看看