javazx 发表于 2015-7-25 10:32:37

【java原理分析】HashMap底层原理 源码 结构深入分析 精解

本次要分析的java数据结构是HashMap,为什么要分析HashMap呢?废话是这么回答的:HashMap重要呗,为什么这么说因为现在大多数的互联网开发中经常会涉及到HashMap。尤其在获取数据时,在转为json格式之前,基本都是以HashMap数据类型来呈现的,在网上也看了很多关于HashMap的资料,都是感觉讲解的不是很全面,这文章有的,另外一个文章中没有,都是一块一块的。没有那么全面的,这里把自己总结的关于HashMap的底层分析和大家分享下吧。也帮助大家深入理解下HashMap,更好的学习java。
1、HashMap的结构:
数组与链表的结合体。

2、最直观的结构图:



3、HashMap的结构图,每个HashMap都包含这四个属性:key,value,hash,next

[*]static class Entry<K,V> implements Map.Entry<K,V> {
[*]      final K key;
[*]      V value;
[*]      final int hash;
[*]      Entry<K,V> next;
[*]..........
[*]}


4、loadFactor为加载因子(即在达到这个值得时候会扩容),hashmap设为0.75,这是值是基于时间与空间的折中考虑的

5、默认的数组长度是16








zhai1234 发表于 2021-1-9 16:09:50

插个眼,好好学习哦,天天向东航发发发

uu1001 发表于 2021-11-24 19:48:43

难住我了· 我刚入门·
页: [1]
查看完整版本: 【java原理分析】HashMap底层原理 源码 结构深入分析 精解