HashMap关键字

本文详细介绍了HashMap的数据结构,包括哈希桶、链表和红黑树,以及其常量定义如DEFAULT_INITIAL_CAPACITY、MAXIMUM_CAPACITY等。深入探讨了内部类Node和静态方法,如计算哈希值的hash方法。此外,还概述了HashMap的重要成员变量和方法,如getNode、putVal、resize和removeNode,以及如何在实现Map接口时覆盖特定方法以提供额外功能。
摘要由CSDN通过智能技术生成

概念关键字

哈希桶:数组
链表:单链表
红黑树

扩容
位运算
哈希碰撞
扰动函数

常量定义

DEFAULT_INITIAL_CAPACITY:默认初始容量,缺省为16;
MAXIMUM_CAPACITY:默认最大容量,缺省2的30次方;
DEFAULT_LOAD_FACTOR:默认加载因子,缺省0.75;
TREEIFY_THRESHOLD:桶容量阈值,超过则从链表转换为红黑树;
UNTREEIFY_THRESHOLD:桶容量阈值,低于该值则从红黑树退化为链表;
MIN_TREEIFY_CAPACITY:从链表转换为红黑树的最小数组容量;

内部类Node

实现接口Map.Entry。
成员包括:key,value,next(链表指针),hash。
LinkedHashMap中的静态内部类Entry派生自Node,而HashMap中的静态内部类TreeNode又派生自LinkedHashMap的Entry。
LinkedHashMap.Entry增加了成员before,after用来保证插入顺序;
HashMap.TreeNode增加了成员parent,left,right,prev以及red用来构造红黑树,平衡二叉树能够保证查找效率维持在一定的时间复杂度。

静态方法

hash:计算哈希值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值