本篇将描述如何使用LinkedHashMap实现LRU以及FIFO缓存,并将从LinkedHashMap源码层面描述是如何实现这两种缓存的。 1.缓存描述 首先介绍一下FIFO、LRU两种缓存: FIFO(First In First out):先见先出,淘汰最先近来的页面,新进来的页面最迟被淘汰, ...
分类:
其他好文 时间:
2018-08-04 20:19:44
阅读次数:
165
1.概述: Java 中的map集合使用键值对(key-value)来保持数据,其中值(value)可以重复,键(key)必须唯一,但最多只能有一个key为空,它的主要实现类有HashMap、HashTable、TreeMap、LinkedHashMap Map集合方法摘要 ...
分类:
编程语言 时间:
2018-07-25 10:20:55
阅读次数:
133
LinkedHahsMap的继承关系 LinkedHashMap直接继承了HahsMap,而linkedHashMap和HashMap在同一个包下,因此HashMap中所有的非private的属性都能拿过来直接用。 LinkedHashMap继承HashMap原来的功能同时进行了修改。主要对原来En ...
分类:
其他好文 时间:
2018-07-24 15:53:54
阅读次数:
152
1. 简介 HashMap 是Java开发中使用频率最高的键值对数据类型容器。它根据键的哈希值(hashCode)来存储数据,访问速度高,但无法按照顺序遍历。HashMap 允许键值为空和记录为空,非线程安全。 另外,如果想要保持有序,可以使用LinkedHashMap。LinkedHashMap ...
分类:
其他好文 时间:
2018-07-22 15:20:27
阅读次数:
179
package java.util;import java.io.IOException;import java.util.function.BiConsumer;import java.util.function.BiFunction;import java.util.function.Consu ...
分类:
其他好文 时间:
2018-07-21 15:01:54
阅读次数:
124
LinkedHashMap的数据结构 可以从上图中看到,LinkedHashMap数据结构相比较于HashMap来说,添加了双向指针,分别指向前一个节点——before和后一个节点——after,从而将所有的节点已链表的形式串联一起来,从名字上来看LinkedHashMap与HashMap有一定的联 ...
分类:
其他好文 时间:
2018-07-21 11:50:08
阅读次数:
161
/** * Basic hash bin node, used for most entries. (See below for * TreeNode subclass, and in LinkedHashMap for its Entry subclass.) */ static class No... ...
分类:
其他好文 时间:
2018-07-19 19:13:47
阅读次数:
238
最近在整理数据结构方面的知识, 系统化看了下Java中常用数据结构, 突发奇想用动画来绘制数据流转过程. 主要基于jdk8, 可能会有些特性与jdk7之前不相同, 例如LinkedList LinkedHashMap中的双向列表不再是回环的. HashMap中的单链表是尾插, 而不是头插入等等, 后 ...
分类:
编程语言 时间:
2018-07-18 21:48:41
阅读次数:
186
摘要: HashMap和双向链表合二为一即是LinkedHashMap。所谓LinkedHashMap,其落脚点在HashMap,因此更准确地说,它是一个将所有Entry节点链入一个双向链表的HashMap。由于LinkedHashMap是HashMap的子类,所以LinkedHashMap自然会拥 ...
分类:
其他好文 时间:
2018-07-11 14:57:58
阅读次数:
166
先来说说它的特点,然后在一一通过分析源码来验证其实现原理 1、能够保证插入元素的顺序。深入一点讲,有两种迭代元素的方式,一种是按照插入元素时的顺序迭代,比如,插入A,B,C,那么迭代也是A,B,C,另一种是按照访问顺序,比如,在迭代前,访问了B,那么迭代的顺序就是A,C,B,比如在迭代前,访问了B, ...
分类:
编程语言 时间:
2018-06-30 18:46:49
阅读次数:
146