`

LinkedHashMap类

 
阅读更多

 LinkedHashMap扩展HashMap,以插入顺序将关键字/值对添加进链接哈希映像中。象LinkedHashSet一样,LinkedHashMap内部也采用双重链接式列表。

  (1) LinkedHashMap(): 构建一个空链接哈希映像

  (2) LinkedHashMap(Map m): 构建一个链接哈希映像,并且添加映像m中所有映射

  (3) LinkedHashMap(int initialCapacity): 构建一个拥有特定容量的空的链接哈希映像

  (4) LinkedHashMap(int initialCapacity, float loadFactor): 构建一个拥有特定容量和加载因子的空的链接哈希映像

  (5) LinkedHashMap(int initialCapacity, float loadFactor, boolean accessOrder): 构建一个拥有特定容量、加载因子和访问顺序排序的空的链接哈希映像


  “如果将accessOrder设置为true,那么链接哈希映像将使用访问顺序而不是插入顺序来迭代各个映像。每次调用get或者put方法时,相关的映射便从它的当前位置上删除,然后放到链接式映像列表的结尾处(只有链接式映像列表中的位置才会受到影响,哈希表元则不受影响。哈希表映射总是待在对应于关键字的哈希码的哈希表元中)。”

  “该特性对于实现高速缓存的“删除最近最少使用”的原则很有用。例如,你可以希望将最常访问的映射保存在内存中,并且从数据库中读取不经常访问的对象。当你在表中找不到某个映射,并且该表中的映射已经放得非常满时,你可以让迭代器进入该表,将它枚举的开头几个映射删除掉。这些是最近最少使用的映射。”

  (6) protected boolean removeEldestEntry(Map.Entry eldest): 如果你想删除最老的映射,则覆盖该方法,以便返回true。当某个映射已经添加给映像之后,便调用该方法。它的默认实现方法返回false,表示默认条件下老的映射没有被删除。但是你可以重新定义本方法,以便有选择地在最老的映射符合某个条件,或者映像超过了某个大小时,返回true。

 

分享到:
评论

相关推荐

    Java源码解析——看优秀源码最能使人进步

    本文将对Java.lang.Object类、Java.lang.Integer类、Java.lang.String类、java.util.Arrays类、java.util.ArrayList类、java.util.LinkedList类...LinkedHashMap类、java.util.LinkedHashSet类等JDK源码进行详细的解析...

    Java 基础核心总结 +经典算法大全.rar

    LinkedHashMap 类 Hashtable 类IdentityHashMap 类WeakHashMap 类 Collections 类集合实现类特征图 泛形 泛型的使用 用泛型表示类 用泛型表示接口泛型方法 泛型通配符 反射 Class 类Field 类Method 类ClassLoader ...

    HashMap,HashTable,LinkedHashMap,TreeMap的区别

    其中,HashMap, HashTable, LinkedHashMap, TreeMap 是四种常用的 Map 实现类,每种类都有其特点和用途。本文将对这四种 Map 实现类进行比较和分析。 HashMap HashMap 是 Java 中最常用的 Map 实现类,它根据键的 ...

    java集合总结

    - **LinkedHashMap类**:HashMap的子类,保持了插入顺序或者访问顺序。 - **TreeMap类**:实现了SortedMap接口,内部使用红黑树,保证键的有序性。 9. **Arrays和Collections工具类** Arrays类提供了处理数组的...

    Java基础总结.pdf

    12. LinkedHashMap类:它继承自HashMap,但它会保持键值对的插入顺序。 13. jQuery:这是一个JavaScript库,简化了HTML文档遍历和事件处理、动画、Ajax交互。常用方法有.each()、.html()、.text()、.val()、.css()...

    Java 基础核心总结.md

    - **LinkedHashMap类**:保持插入顺序的`Map`。 - **Hashtable类**:线程安全的`Map`。 - **IdentityHashMap类**:使用系统身份哈希码确定相等性。 - **WeakHashMap类**:使用弱引用作为键的`Map`。 - **Collections...

    java中HashMap,LinkedHashMap,TreeMap,HashTable的区别

    本文将详细分析四种常用的`Map`实现类:`HashMap`, `LinkedHashMap`, `TreeMap`以及`HashTable`之间的区别。 #### 1. HashMap `HashMap`是一种基于哈希表实现的`Map`接口,提供了一个非同步的、允许使用`null`键和...

    《java数据结构》源码及课后答案

    Java中的HashMap和LinkedHashMap类是散列表的典型应用,它们提供了O(1)的平均时间复杂度来执行插入、删除和查找操作。 七、树 树是一种非线性的数据结构,由节点和边组成。常见的树类型包括二叉树、二叉搜索树、AVL...

    javaSE代码实例

    14.7.4 LinkedHashMap类的使用 304 14.7.5 SortedMap接口与TreeMap类 305 14.7.6 映射的遍历 308 14.8 栈在Java中的实现 309 14.8.1 Stack类的使用 309 14.8.2 Deque接口的使用 310 14.8.3 利用栈计算...

    LinkedHashMap

    `LinkedHashMap`是Java集合框架中的一个重要组成部分,属于`Map`接口的一个实现类。这个数据结构结合了哈希表(HashMap)和链表的特点,能够在保持元素的键值对存储的同时,保证元素的插入顺序或者按照访问顺序进行...

    hashmap:提供快速的HashMap,LinkedHashMap和高阶函数到任何可迭代的函数,例如Array,Map或Set。 经过测试和基准测试的问题和PR

    该项目提供了可在Node.js和浏览器上运行的HashMap和LinkedHashMap类。 它们都是像一样的简化实现 它使用改进的算法生成哈希。 这样可确保在所有铲斗上尽可能广泛地散布。 根据规范,基本Hashmap不能保证在迭代时...

    java集合框架 解析

    java集合框架 3.6. LinkedHashSet类 4. Map接口 4.1. Map.Entry接口 4.2. SortedMap接口 4.3. AbstractMap抽象类 4.4. HashMap类和TreeMap类 ...4.5. LinkedHashMap类 4.6. WeakHashMap类 4.6. IdentityHashMap类

    JavaLinkedHashMap源码解析Java开发Ja

    - `LinkedHashMap` 的核心是 `Entry` 类,它继承自 `HashMap` 的 `Node` 类,额外维护了前后节点的引用。 - `putEntryAt()` 和 `createEntryAt()` 方法负责在链表的正确位置插入新的节点。 - `moveToEnd()` 方法...

    Java使用LinkedHashMap进行分数排序

    ScoreSorter类使用LinkedHashMap来存储数据,LinkedHashMap的key是分数档次,value是对应的学生列表。这样可以很方便地实现分数排序。 在 ScoreSorter类中,我们使用了Student类来表示学生,Student类实现了...

    基于Java实现缓存Cache的深入分析

    在Java中,LinkedHashMap类提供了LRU缓存的实现基础,因为它同时维护了元素的插入顺序和访问顺序,这正是LRU策略所需的关键特性。 上述代码展示了一个简单的LRUCache实现,其中主要包含两个类:CachedData和...

    java软件技术文档-深入java8的集合4:LinkedHashMap的实现原理.pdf

    它的内部节点(Entry 类)继承自 HashMap 的 Node 类,并增加了前后指针,形成一个双向链表。通过回调方法和 `accessOrder` 属性,LinkedHashMap 实现了动态维护顺序的功能,使得在遍历 Map 时可以保持一定的顺序,...

    java代码-输出 id 和 level 的映射

    4. LinkedHashMap类 LinkedHashMap保持了插入顺序或者访问顺序,这对于输出特定顺序的映射很有用。如果需要按照id插入时的顺序输出id-level映射,可以使用LinkedHashMap。 5. 创建映射 创建一个Map实例,然后通过...

Global site tag (gtag.js) - Google Analytics