美文网首页
Java--HashMap底层实现详解-1

Java--HashMap底层实现详解-1

作者: 李赫尔南 | 来源:发表于2022-10-22 12:55 被阅读0次

  HashMap底层实现采用了哈希表,这是一种非常重要的数据结构。对于我们以后理解很多技术都非常有帮助(比如:redis数据库的核心技术和HashMap一样),因此,非常有必要让大家理解。
  数据结构中由数组和链表来实现对数据的存储,他们各有特点。
  (1)数组:占用空间连续。寻址容易,查询速度快。但是,增加和删除效率非常低。
  (2)链表:占用空间不连续。寻址困难,查询速度慢。但是,增加和删除效率非常高。
  那么,我们能不能结合数组和链表的优点(即查询快,增删效率也高)呢?答案就是“哈希表”。哈希表的本质就是“数组+链表”。

建议
  对于频繁出现的“底层实现”讲解,建议学有余力的童鞋将它搞通。刚入门的童鞋如果觉得有难度,可以暂时跳过。入门期间,掌握如何使用即可,底层原理是扎实内功,便于大家应对一些大型企业的笔试面试。

·Hashmap基本结构讲解
  哈希表的基本结构就是“数组+链表”。我们打开HashMap源码,发现有如下两个核心内容:

HashMap底层源码(1).png

  其中的Entry[] table 就是HashMap的核心数组结构,我们也称之为“位桶数组”。我们再继续看Entry是什么,源码如下:


HashMap底层源码(2).png

一个Entry对象存储了:
1.key:键对象 value:值对象
2.next:下一个节点
3.hash:键对象的hash值
显然每一个Entry对象就是一个单向链表结构,我们使用图形表示一个Entry对象的典型示意:


Entry对象存储结构图.png

然后,我们画出Entry[]数组的结构(这也是HashMap的结构):


Entry数组存储结构.png

·存储数据过程put(key, value)
Java--HashMap底层实现详解-2

相关文章

  • Runloop

    Runloop 实现原理及应用iOS - RunLoop 底层源码详解及具体运用

  • iOS - KVO

    [toc] 参考 KVO KVC 【 iOS--KVO的实现原理与具体应用 】 【 IOS-详解KVO底层实现 】...

  • 底层原理

    iOS底层原理总结 - Category的本质 KVO详解及底层实现青少年一定要读的KVO指南 iOS 底层解析w...

  • 详解KVO底层实现

    前言 KVO: Key-Value-Observer,它来源于观察者模式, 其基本思想(copy于某度)是一个目标...

  • ReentrantLock(AQS),Volatile,Sync

    本文参考: JUC学习(八):AQS的CLH队列并发编程——详解 AQS CLH 锁JMM和底层实现原理 AQS ...

  • 目录【Java实习生准备】

    HashMap底层详解-001-数据结构、put、get HashMap底层详解-002-hash算法、长度的秘密

  • Java CAS底层实现详解

    前言 这篇文章将深入介绍CAS在JDK具体的实现方式,填补Java源码系列(7) -- AtomicInteger...

  • KVO详解及底层实现

    什么是KVO?? KVO就是NSKeyValueObserving,请看官方文档的解释: 大概翻译如下: 简单理解...

  • AFNetworking与ASIHTTPRequest的区别

    一、底层实现 1、AFN的底层实现基于OC的NSURLConnection和NSURLSession 2、ASI的...

  • AFNetworking与ASIHTTPRequest的区别

    一、底层实现 1、AFN的底层实现基于OC的NSURLConnection和NSURLSession 2、ASI的...

网友评论

      本文标题:Java--HashMap底层实现详解-1

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