LinkedHashMap有什么用处
时间: 2023-12-25 10:26:11 浏览: 69
LinkedHashMap是HashMap的一个子类,它继承了HashMap的所有特性,并且通过维护一个双向链表来保持有序性。由于它可以保持插入顺序或者访问顺序,因此在需要按照插入顺序或者访问顺序遍历元素时非常有用。例如,在实现LRU缓存时,可以使用LinkedHashMap来维护缓存中元素的访问顺序,以便在缓存满时淘汰最近最少使用的元素。此外,LinkedHashMap还可以用于实现LRU缓存、LRU页面置换算法等。
相关问题
java LinkedHashMap 初始化
Java中的LinkedHashMap是一种有序的HashMap,它继承自HashMap并实现了Map接口。LinkedHashMap的初始化过程与HashMap类似,都是通过调用相应的构造函数进行初始化。无论采用何种方式创建LinkedHashMap,其都会调用HashMap相应的构造函数。不管调用HashMap的哪个构造函数,HashMap的构造函数都会在最后调用一个init()方法进行初始化。而在LinkedHashMap中,init()方法被重写了,用于初始化它所维护的双向链表。具体来说,LinkedHashMap中的Entry增加了两个指针before和after,用于维护双向链接列表。before、after用于维护Entry插入的先后顺序,next用于维护HashMap各个桶中Entry的连接顺序。除此之外,LinkedHashMap还有一个header节点,它的作用是标志开始元素和标志结束元素。header节点不在数组中,只是用来标志开始元素和标志结束元素的。
LinkedHashMap集合概述和特点
LinkedHashMap是Java集合框架中的一种Map实现,它继承自 HashMap 类,底层使用双向链表维护元素的顺序。特点是能够保持插入顺序,即遍历顺序与插入顺序相同,同时也支持按照访问顺序排序,即根据元素最近被访问的时间排序。其键值对是唯一的,键和值都可以为null。 对于访问顺序,可以通过构造函数或调用 afterNodeAccess、beforeNodeInsertion 等访问方法来配置。此外,LinkedHashMap 还实现了 removeEldestEntry 方法,它的作用是当元素个数超过指定阈值时,删除最不常访问的元素。
阅读全文