请选择 进入手机版 | 继续访问电脑版
java自学网VIP

Java自学网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 4170|回复: 2

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

[复制链接]
  • TA的每日心情
    开心
    2021-5-25 00:00
  • 签到天数: 1917 天

    [LV.Master]出神入化

    2025

    主题

    3683

    帖子

    6万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    66061

    宣传达人突出贡献优秀版主荣誉管理论坛元老

    发表于 2015-7-25 10:32:37 | 显示全部楼层 |阅读模式
    本次要分析的java数据结构是HashMap,为什么要分析HashMap呢?废话是这么回答的:HashMap重要呗,为什么这么说因为现在大多数的互联网开发中经常会涉及到HashMap。尤其在获取数据时,在转为json格式之前,基本都是以HashMap数据类型来呈现的,在网上也看了很多关于HashMap的资料,都是感觉讲解的不是很全面,这文章有的,另外一个文章中没有,都是一块一块的。没有那么全面的,这里把自己总结的关于HashMap的底层分析和大家分享下吧。也帮助大家深入理解下HashMap,更好的学习java。' e( b( X7 H3 L: z& R2 p2 u& O
    1、HashMap的结构:: d8 x. m: d3 F8 t' J% I/ [
    数组与链表的结合体。) n2 }# V( U+ j
    " o' k$ ^, C" H. c# S
    2、最直观的结构图:
    / z2 ?/ H: t8 o! |9 U" Y% N( C
    7 o  W8 Z7 S* y3 G2 o3 i 0_1298551673zkZg.gif
    4 s( ?& w. O3 f* ]" w6 ~" P# J- a# R0 A6 s
    3、HashMap的结构图,每个HashMap都包含这四个属性:key,value,hash,next
    7 J* J, s" f. ^8 P2 Z/ Q
    • static class Entry<K,V> implements Map.Entry<K,V> {  
    •         final K key;  
    •         V value;  
    •         final int hash;  
    •         Entry<K,V> next;  
    • ..........  
    • }  
      + y  M) }6 A7 ~. S: j

    % a/ p: [! U  J7 v3 v
    7 r5 c' Y: O$ D% D7 w2 B$ ^; I2 L
    4、loadFactor为加载因子(即在达到这个值得时候会扩容),hashmap设为0.75,这是值是基于时间与空间的折中考虑的
    ; I. K; `* z. [8 N/ d' r0 P+ B: J) |
    9 ?3 L- \  j2 U5、默认的数组长度是16- F3 n, ^9 E  {

    # i+ A& T# c- |6 n

    % c- y/ c# ], o5 i, Z4 N0 n. o0 {  \3 q3 R3 q2 N# h

    4 P* D2 S& q5 I; Z  f# S
    9 z% J/ e! ?* w# Q6 J: f/ U
    " ^3 ]( V" p1 T! o3 L$ n% Y
    ; ~& _0 }( V, ]

    # L/ N/ _( }  ?4 d  \0 y
    回复

    使用道具 举报

  • TA的每日心情
    无聊
    2021-1-17 23:32
  • 签到天数: 18 天

    [LV.4]略有小成

    0

    主题

    46

    帖子

    30万

    积分

    终身VIP

    Rank: 60Rank: 60Rank: 60Rank: 60Rank: 60Rank: 60Rank: 60Rank: 60Rank: 60Rank: 60Rank: 60Rank: 60Rank: 60Rank: 60Rank: 60

    积分
    300432
    发表于 2021-1-9 16:09:50 | 显示全部楼层
    插个眼,好好学习哦,天天向东航发发发
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    0

    主题

    3

    帖子

    10

    积分

    普通会员

    Rank: 2

    积分
    10
    发表于 2021-11-24 19:48:43 | 显示全部楼层
    难住我了· 我刚入门·
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|手机版|小黑屋|Java自学网

    GMT+8, 2024-3-29 17:37 , Processed in 0.096078 second(s), 37 queries .

    Powered by Javazx

    Copyright © 2012-2022, Javazx Cloud.

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