找回密码
 立即注册
查看: 518|回复: 0

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

[复制链接]
累计签到:5 天
连续签到:2 天
发表于 2021-8-14 16:07:37 | 显示全部楼层 |阅读模式
本次要分析的java数据结构是HashMap,为什么要分析HashMap呢?废话是这么回答的:HashMap重要呗,为什么这么说因为现在大多数的互联网开发中经常会涉及到HashMap。尤其在获取数据时,在转为json格式之前,基本都是以HashMap数据类型来呈现的,在网上也看了很多关于HashMap的资料,都是感觉讲解的不是很全面,这文章有的,另外一个文章中没有,都是一块一块的。没有那么全面的,这里把自己总结的关于HashMap的底层分析和大家分享下吧。也帮助大家深入理解下HashMap,更好的学习java。2 q7 w3 F. r/ H- r+ h
1、HashMap的结构:( R8 e. E* i. x( b7 X$ x
数组与链表的结合体。" B0 _& l- t* @  B+ a, h
4 g( d: |! |. {! J
2、最直观的结构图:1 S. k


3、HashMap的结构图,每个HashMap都包含这四个属性:key,value,hash,next  T, `& ~  U+ R! y
  • static class Entry<K,V> implements Map.Entry<K,V> {  
  •         final K key;  
  •         V value;  
  •         final int hash;  
  •         Entry<K,V> next;  
  • ..........  
  • }  

/ S% a8 P1 ~9 R, u7 m
4、loadFactor为加载因子(即在达到这个值得时候会扩容),hashmap设为0.75,这是值是基于时间与空间的折中考虑的  X, w& W7 z( E. [
3 f$ u) T( [( w( @+ G3 J! K
5、默认的数组长度是16
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

点击这里给我发消息

QQ|小黑屋|Archiver|手机版|一路学IT论坛 专业视频教程网站

GMT+8, 2026-8-25 02:04

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表