LinkedHashMap学习笔记

本文详细探讨了LinkedHashMap,一种在HashMap基础上添加双向指针的数据结构。介绍了其内部Entry节点类,增加了before和after指针,以及accessOrder参数来控制排序方式。在put、get和remove方法中,着重解释了如何维护双向链表的顺序。总结指出,尽管有序性带来了额外的时间和空间成本,但LinkedHashMap提供了多种迭代顺序选择,并保留了HashMap的主要功能。
摘要由CSDN通过智能技术生成

LinkedHashMap

在这里插入图片描述

概述

LinkedHashMap数据结构相比较于HashMap来说,添加了双向指针,分别指向前一个节点——before和后一个节点——after,从而将所有的节点已链表的形式串联一起来

//HashMap里面的方法在LinkedHashMap进行了重写
	void afterNodeAccess(Node<K,V> p) { }
    void afterNodeInsertion(boolean evict) { }
    void afterNodeRemoval(Node<K,V> p) { }
Entry节点类
 static class Entry<K,V> extends HashMap.Node<K,V> {
        Entry<K,V> before, after;
        Entry(int hash, K key, V value, Node<K,V> next) {
            super(hash, key, value, next);
        }
    }

继承HashMap的node节点增加了before和after两个指针。

类属性
// 用于指向双向链表的头部
    transient LinkedHashMap.Entry<K,V> head;
//用于指
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值