LRU,即最近最少使用。LRU中保存的数据如果满了,那么就会将最近最少使用的数据删除。
LinkedHashMap通过使accessOrder为true,可以满足这种特性。代码如下:
package com.dbl.linkedlistmap;import java.util.LinkedHashMap;import java.util.Map;/*** @author dbl* @ClassName lruDemo* @Description* @date 2022/07/05 14:45*/public class LruDemo<T> extends LinkedHashMap {private int capacity;public LruDemo(int capacity) {super(capacity, 0.75f, true);this.capacity = capacity;}public Object get(Object key) {return super.getOrDefault(key, -1);}@Overrideprotected boolean removeEldestEntry(Map.Entry eldest) { //当存放数据 大于设定值 就会删除最近最少使用return size() > capacity;}public static void main(String[] args) {LruDemo<Object> objectLruDemo = new LruDemo<>(16);objectLruDemo.put(1 >> 1,1);objectLruDemo.put(1 >> 2,2);objectLruDemo.put(1 >> 3,3);objectLruDemo.put(1 >> 4,4);objectLruDemo.put(1 >> 5,5);objectLruDemo.put(1 >> 6,6);System.out.println(objectLruDemo);}}
参考:https://blog.csdn.net/qq_40050586/article/details/105851970
