(一)Java集合专题-详细分析HashMap集合底层实现的思想

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_36520235/article/details/83714604

详细分析HashMap JDK1.8集合底层实现的思想和原理

(1)先来看一下整个Map家族的整体都是怎么样的关系
在这里插入图片描述
(2)先了解一下HashMap的基本特性:

1.实现了Map接口,里面的方法全部被HashMap实现。
2.允许null键和null值。这点和Hashtable不同,Hashtable不允许。
3.非线程安全,这点也和Hashtable不同,Hashtable为线程安全的。
4.不保证有序,即元素的插入和读取顺序不保证一致,这一点从开始的示例程序和图就能看出来。
5.也不保证元素的顺序始终不变,在扩容时,元素的顺序会重新被打乱。

(3)再去看一下HashMap的都有什么方法:

为了方便看源码,我们先了解一下HashMap的每一个参数都是什么意思?

源码用到的参数 代表的意思
DEFAULT_INITIAL_CAPACITY 表示默认的桶数组大小 容量为16
DEFAULT_LOAD_FACTOR 表示默认的负载因子,也就是当桶数组不够用的时候,对桶数组扩容的一个参数,也就是上面那个16,如果已经用到的桶数组达到了16*DEFAULT_LOAD_FACTOR=12的时候,就需要开始扩容的一个临界点

看一下HashMap的结构图:

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_36520235/article/details/83714604
今日推荐