LinkedHashMap的原理大致和上篇文章提到的数据结构类似。LRU算法实现
它继承自HashMap , 实现了map 接口。 所以,我们先来看下HashMap 的实现方式。
一. HashMap
HashMap 的目的是为了实现一种键值对, 能够在O(1)的时间复杂度内找到键所对应的值值所在的位置。
主要的数据结构由以下两个属性实现。
// 每一个节点的hash值,由key 的hashcode 和value 的hashcode异或得到。
// next 指向此节点在这条链中的后继节点
static class Node<K,V> implements Map.Entry<K,V> {
final int hash;
final K key;
V value;
Node<K,V> next;
}
// The table, initialized