• 欢迎访问 winrains 的个人网站!
  • 本网站主要从互联网整理和收集了与Java、网络安全、Linux等技术相关的文章,供学习和研究使用。如有侵权,请留言告知,谢谢!

标签:HashMap

Java技术

深入理解HashMap(5):关键源码逐行分析之put

深入理解HashMap(5):关键源码逐行分析之put
前言 系列文章目录 上一篇我们讨论了HashMap的扩容操作, 提到扩容操作发生在table的初始化或者table大小超过threshold后,而这两个条件的触发基本上就发生在put操作中。 本篇我们就来聊聊HashMap的put操作。 本文的源码基于 jdk8 版本. put方法 HashMap 实现了Map接口, 因此必须要实现put方法: public……继续阅读 »

winrains 9个月前 (03-07) 72浏览 2个赞

Java技术

深入理解HashMap(2):关键源码逐行分析之hash算法

深入理解HashMap(2):关键源码逐行分析之hash算法
前言 系列文章目录 前面我们讨论了HashMap的结构, 接下来几篇我们从源码角度来看HashMap的实现细节. 本篇我们就来聊聊HashMap的hash算法 本文的源码基于 jdk8 版本. hash算法 上一篇文章我们提到, 为了利用数组索引进行快速查找, 我们需要先将 key值映射成数组下标. 因为数组的下标是有限的集合, 所以我们可以先通过hash算……继续阅读 »

winrains 9个月前 (03-07) 72浏览 2个赞

Java技术

深入理解HashMap(1):从源头说起

深入理解HashMap(1):从源头说起
前言 系列文章目录 HashMap我们都不陌生, 也是java面试几乎必问的考点, 本系列我们来深入思考有关HashMap的设计思想和实现细节. HashMap解决了什么问题? 任何数据结构的产生总对应着要解决一个实际的问题, HashMap的产生要解决问题就是: 如何有效的 存 取 一组 key-vaule 键值对 key-value键值对是最常使用的数据……继续阅读 »

winrains 9个月前 (03-07) 66浏览 2个赞

Java技术

HashMap 实现原理及源码分析

HashMap 实现原理及源码分析
HashMap是JDK中非常重要的容器,采用 数组 + 链表 的方式实现,理想情况下能支持 O(1) 时间复杂度的增删改查操作。本文将由浅入深地讲解哈希表的实现原理,并对HashMap的部分源码进行分析。 1. 从数组说起 数组应该是我们最先学习的数据结构,它是内存中一块连续的存储单元,因此计算机可以根据数组起始地址、元素长度和下标,计算出我们要访问的元……继续阅读 »

winrains 10个月前 (02-19) 78浏览 1个赞

Java技术

详解并发下的HashMap以及JDK8的优化

详解并发下的HashMap以及JDK8的优化
HashMap使用链表法避免哈希冲突(相同hash值),当链表长度大于TREEIFY_THRESHOLD(默认为8)时,将链表转换为红黑树。当小于等于UNTREEIFY_THRESHOLD(默认为6)时,又会退化回链表以达到性能均衡。 下图为HashMap的数据结构(数组+链表+红黑树 ) HashMap的数据结构 HashMap在并发时出现的问……继续阅读 »

winrains 1年前 (2019-11-09) 67浏览 1个赞