`

LinkedHashMap实现LRU缓存代码

    博客分类:
  • JAVA
 
阅读更多

在看Java API时,才知道LinkedHaspMap适合构建 LRU 缓存,记录下,方便以后查阅。

public static void main(String[] args) {
        final int cacheSize = 5;
        LinkedHashMap<String, String> cache = new LinkedHashMap<String, String>(cacheSize,0.75f,true){
            @Override
            protected boolean removeEldestEntry(
                    Map.Entry<String, String> eldest) {
                return size()>cacheSize;
            }
        };
       
        cache.put("1", "a");
        cache.put("2", "b");
        cache.put("3", "c");
        cache.put("4", "d");
        System.out.println(cache.get("1"));
        System.out.println(cache.get("1"));
        cache.put("5", "e");
        cache.put("6", "f");
        cache.put("7", "g");
        System.out.println(cache.get("2"));
       
    }

 

输出:

a
a
null

 

 

分享到:
评论

相关推荐

    详解Java实现LRU缓存

    以下是一个使用 LinkedHashMap 实现 LRU 缓存的示例代码: ```java package cn.lzrabbit.structure.lru; import java.util.LinkedHashMap; import java.util.Map; public class LRUCache2, V&gt; extends ...

    Java实现LRU缓存机制:深入解析与高效编码实践

    在Java中实现LRU缓存,可以通过使用LinkedHashMap来简化实现,也可以手动实现以获得更好的控制。在多线程环境中,还需要考虑缓存的线程安全问题。通过合理的设计和优化,我们可以有效地提高程序的性能和响应速度。

    Lru缓存代码

    标题中的“Lru缓存代码”指的是实现LRU缓存机制的源代码,可能是用特定编程语言编写的。通过这段代码,开发者可以创建一个能够在内存中保存最近最常用数据的缓存结构。 描述中的“lru资源缓存”可能是指利用LRU策略...

    Java实现LRU缓存的实例详解

    可以使用LinkedHashMap实现LRU缓存,通过重写removeEldestEntry方法,实现LRU缓存的效果。 3. LinkedHashMap的实现原理 LinkedHashMap是一个双向链表,加上HashTable的实现,能够记录存入其中的数据的顺序,并能按...

    LRU_缓存策略_LRU_缓存.zip

    在这个压缩包文件“LRU_缓存策略_LRU_缓存_源码.zip”中,我们预计会找到实现LRU缓存策略的源代码,这对于理解其工作原理和应用非常有帮助。 LRU缓存策略的核心思想是:当缓存满时,优先淘汰最近最少使用的数据。这...

    实现 LRU 算法,和 Caffeine 和 Redis 中的缓存淘汰策略.docx

    需要注意的是,自定义实现 LRU 缓存需要额外处理数据结构的操作,如链表的节点添加、删除以及维护访问顺序,相比直接使用 `LinkedHashMap`,代码会更复杂一些。 总之,LRU 算法是通过追踪数据的访问时间来优化缓存...

    Java实现LRU算法.zip

    通过以上代码,我们已经构建了一个简单的LRU缓存系统。在实际应用中,LRU算法不仅可以用于操作系统中的页面替换,还可以应用于数据库查询缓存、编程语言的内存管理(如Java的SoftReference和WeakReference)以及Web...

    实现了LRU算法的缓存

    在这个Java实现的LRU缓存中,我们可能会看到以下几个关键知识点: 1. **数据结构的选择**: LRU缓存通常基于哈希表和双向链表实现。哈希表用于快速查找,而双向链表则用来维护元素的顺序性,以便于执行删除和插入...

    LRU算法LRU算法LRU算法LRU算法

    在缓存或者数据库管理系统中,LRU算法被广泛应用,因为它的实现简单且效果良好。 LRU算法的核心思想是:当内存满时,最近最少使用的数据会被优先淘汰。也就是说,如果一个数据最近被访问过,那么它在未来被访问的...

    LRU_缓存策略_LRU_缓存_源码.rar

    在编程中,Java的`java.util.LinkedHashMap`类就提供了LRU缓存的实现,可以通过设置构造函数的`accessOrder`参数为`true`来启用按访问顺序排序的功能。在Python中,可以使用`functools.lru_cache`装饰器实现LRU缓存...

    深入浅出解析分布式缓存关键技术与实战指南

    特别探讨分布式缓存的三大经典算法(LRU, LFU, FIFO),并给出具体实现案例——使用LinkedHashMap实现LRU缓存。接着,文章详细阐述常见的分布式缓存问题,如缓存穿透、雪崩和击穿,并提供详细的解决方案和技术手段。...

    LRU算法 java实现

    以下是一个简单的LRU缓存实现的Java代码框架: ```java class LRUCache, V&gt; { private int capacity; private HashMap, Node&gt; map; private DoublyLinkedList&lt;Node&gt; list; public LRUCache(int capacity) { ...

    Cache:在 Java 中实现 LRU 缓存

    在Java中,我们可以使用`java.util.LinkedHashMap`来实现LRU缓存。`LinkedHashMap`是一个关联容器,它不仅维护了键值对的映射,还维护了插入顺序或访问顺序的双向链表。我们可以通过设置构造函数的三个参数来实现LRU...

    LRU.zip_zip

    LRU(Least Recently Used)是一种常用的缓存淘汰策略,它基于“最近最少使用”的原则,当缓存满时,会优先淘汰...通过阅读和理解这些代码,开发者可以提升对数据结构和算法的理解,以及如何在Java中高效实现LRU缓存。

    Java和Android的Lru缓存及其实现原理

     Android提供了LRUCache类,可以方便的使用它来实现LRU算法的缓存。Java提供了LinkedHashMap,可以用该类很方便的实现LRU算法,Java的LRULinkedHashMap是直接继承了LinkedHashMap,进行了极少的改动后可以实现LRU...

    Java和Android的LRU缓存及实现原理

    在Java和Android中,LRU缓存的实现主要是通过`LinkedHashMap`类来完成的。 一、Android的LRU缓存 Android提供了一个名为`LRUCache`的类,它是专门为Android应用设计的LRU缓存实现。`LRUCache`内部使用了`...

    LRU.rar_LRU_LRU ja

    在Java中,我们可以使用`LinkedHashMap`来实现LRU缓存,因为它提供了O(1)的时间复杂度来执行插入、删除和查找操作,并且可以按照访问顺序维护元素。 1. **LRU缓存结构**:LRU缓存通常由两个部分组成:一个存储数据...

    LRU算法--utils工具包

    在Java中实现LRU缓存,我们可以借助一些内置工具或第三方库,如Java 8的`ConcurrentHashMap`结合`LinkedHashMap`,或者Google的Guava库中的`Cache`类。这篇博客文章可能讨论了如何使用这些工具来构建一个LRU缓存系统...

    LRU算法实现1

    在Java中,LRU缓存的实现通常有两种方式:使用`LinkedHashMap`或自定义数据结构(链表+HashMap)。 ### LRU Cache的`LinkedHashMap`实现 `LinkedHashMap`是Java集合框架中的一个类,继承自`HashMap`,并添加了双向...

    Lru算法缓存解决图片OOM

    LRU(Least Recently Used)算法是一种常用的页面替换策略,它基于“最近最少使用...在实际开发中,可以利用Android提供的`LruCache`类或者第三方库如 Glide、Picasso 等,它们已经内置了LRU缓存机制,使得实现更简便。

Global site tag (gtag.js) - Google Analytics