美文网首页
HashMap数据结构分析

HashMap数据结构分析

作者: 起猿日 | 来源:发表于2018-12-06 16:25 被阅读0次

基本结构:

数组+单向链表

元素:

Node,包含key value Node(next)

基本限制

数组默认长度:1<<4 即 16
数组最大值 :1<<30
默认加载因子:0.75 ------ 数组容量*0.75 = 12 (使用大小触发点:使用到12时做扩大数组容量的操作)
链表变形为红黑树的触发大小:8 -------- :变形目的是降低查找的时间复杂度。
红黑树变形为链表的触发大小:6

添加元素的方式

先存数组,如果重叠则往下存成链表
1.计算出在数组的位置
目的:得到0-15的某个值,方式:哈希算法,通过key的hashCode取数组大小的模-------key.hashCode()%数组大小=下标值(即数组位置)

源码中的具体细节

1.如果为空则resize() 初始化
2.根据hash进行运算,
3.node中的hash记录

相关文章

  • Java集合-HashMap

    以前写过一篇源码分析HashMap数据结构的,现在找不回了,重新简单的分析一下HashMap的数据结构增强一下自己...

  • Java源码分析——ArrayList

    之前已经分析了HashMap的源码,知道HashMap的内部数据结构是数组+链表+红黑树。相对于HashMap,A...

  • HashMap源码分析

    HashMap数据结构 HashMap数据结构.png HashMap继承图 HashMap-class.jpg ...

  • Java容器类框架分析(3)HashMap源码分析

    概述 在分析HashMap的源码之前,先看一下HashMap在数据结构中的位置,常见的数据结构按照逻辑结构跟存储结...

  • java容器源码分析--HashMap(JDK1.8)

    本篇结构: 前言 HashMap的数据结构 常用方法及遍历选择 HashMap中的重要参数 源码分析 疑问解答 一...

  • HashMap源码分析

    HashMap源码分析 HashMap是对Map接口的一种实现,底层数据结构使用了散列表(Hash table)。...

  • Java集合-ConcurrentHashMap

    前面通过分析HashMap的数据结构发现,HashMap通过Hash表和链表的结构构成的一个数据结构,当有两个ha...

  • Java HashMap原理解析

    本文分析HashMap的实现原理。 数据结构(散列表) HashMap是一个散列表(也叫哈希表),用来存储键值对(...

  • HashMap1.8源码分析

    本文主要有关HashMap1.8源码分析 原理和过程 1:HashMap的原理,内部数据结构如何? 底层使用哈希表...

  • 面试必考之HashMap

    HashMap的内部数据结构 HashMap 在1.7之前的数据结构为 数组 + 链表,如图所示: HashMap...

网友评论

      本文标题:HashMap数据结构分析

      本文链接:https://www.haomeiwen.com/subject/hxyqcqtx.html