Map 接口的俩个实现类Hashmap Hashtable Treemap底层结构&源码

本文介绍了Java中Map接口的三种常见实现类:HashMap、Hashtable和TreeMap。HashMap依赖于哈希表,初始容量为16,负载因子为0.75。当元素达到临界值时会进行扩容。Hashtable与HashMap类似,但线程安全。而TreeMap底层基于红黑树,元素默认按Key自然排序或自定义排序。面试中,判断Map是否为空使用map.isEmpty()与map.size()==0效率相同。
摘要由CSDN通过智能技术生成

Map 接口
Java集合包括俩大类
一类是保存单列数据的Collection接口,Collection又包括List 和Set子接口
一类是保存双列数据的Map接口,常见的实现类为Hashmap , Hashtable TreeMap,Properties

Map 接口的特点
保存键值对的数据
键不能重复
keyvalue值可以为null
list&map 均重写了toString 可以直接打印

Hashmap
Hashmap 有俩个影响因素
一个是初始capacity: 创建hashmap时候桶的个数
一个是load factor:0.75 平衡了存储和查询

Hashmap 底层结构
创建hashMap, HashMap hashMap = new HashMap();
初始化了如下变量
table: 保存了数据的数组,如下:
在这里插入图片描述
table 结构如下图,每一个格子称为桶,当一个桶上有多个元素时候,一般以链表保存,当元素个数>8 的時候,以树结构保存

在这里插入图片描述
threshold: 临界值,超过该值就要扩容,初始化hashmap之后就变

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值