LinkedHashMap

Posted mike_chang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LinkedHashMap相关的知识,希望对你有一定的参考价值。

LinkedHashMap既是一个HashMap,也是一个链表

package java.util;

import java.util.function.Consumer;
import java.util.function.BiConsumer;
import java.util.function.BiFunction;
import java.io.IOException;

public class LinkedHashMap<K,V>
    extends HashMap<K,V>
    implements Map<K,V> {
    
    static class Entry<K,V> extends HashMap.Node<K,V> {
        // LinkedHashMap的每个Entry元素多了两个引用
        Entry<K,V> before, after;
        Entry(int hash, K key, V value, Node<K,V> next) {
            super(hash, key, value, next);
        }
    }
    // 第一个元素
    transient LinkedHashMap.Entry<K,V> head;
    // 最后一个元素
    transient LinkedHashMap.Entry<K,V> tail;
}

// HashMap.Node
static class Node<K,V> implements Map.Entry<K,V> {
    final int hash;
    final K key;
    V value;
    Node<K,V> next;
}

 

以上是关于LinkedHashMap的主要内容,如果未能解决你的问题,请参考以下文章

LinkedHashMap 源码分析

LinkedHashMap实现LRU算法

访问 LinkedHashMap 中最后一个对象中的方法

通过比较LinkedHashMap中的值来获取密钥

Java集合详解5:深入理解LinkedHashMap和LRU缓存

LinkedHashMap与HashMap的区别