LRU,即最近最少使用。LRU中保存的数据如果满了,那么就会将最近最少使用的数据删除。
    LinkedHashMap通过使accessOrder为true,可以满足这种特性。代码如下:

    1. package com.dbl.linkedlistmap;
    2. import java.util.LinkedHashMap;
    3. import java.util.Map;
    4. /**
    5. * @author dbl
    6. * @ClassName lruDemo
    7. * @Description
    8. * @date 2022/07/05 14:45
    9. */
    10. public class LruDemo<T> extends LinkedHashMap {
    11. private int capacity;
    12. public LruDemo(int capacity) {
    13. super(capacity, 0.75f, true);
    14. this.capacity = capacity;
    15. }
    16. public Object get(Object key) {
    17. return super.getOrDefault(key, -1);
    18. }
    19. @Override
    20. protected boolean removeEldestEntry(Map.Entry eldest) { //当存放数据 大于设定值 就会删除最近最少使用
    21. return size() > capacity;
    22. }
    23. public static void main(String[] args) {
    24. LruDemo<Object> objectLruDemo = new LruDemo<>(16);
    25. objectLruDemo.put(1 >> 1,1);
    26. objectLruDemo.put(1 >> 2,2);
    27. objectLruDemo.put(1 >> 3,3);
    28. objectLruDemo.put(1 >> 4,4);
    29. objectLruDemo.put(1 >> 5,5);
    30. objectLruDemo.put(1 >> 6,6);
    31. System.out.println(objectLruDemo);
    32. }
    33. }

    参考:https://blog.csdn.net/qq_40050586/article/details/105851970