前言
作为一个java开发,我们在代码编程中经常会用到 k-v 键值对类型的容器,而其最常用到的即咱们的 HashMap。
首先,HashMap是什么呢,大家熟知,HashMap是基于哈希表的Map接口的非同步实现,它允许null键和null值,且HashMap依托于它的数据结构的设计,存储效率特别高,所以被咱们常用。
HashMap里面采用的数据结构有:数组+单向链表+双向链表+红黑树,不愧是大佬们写的容器类,一个字,牛!
这篇文章咱们就来剖析下 HashMap 的 put 操作,看看往 HashMap 里面塞数据的时候会经过哪些逻辑。
注:本文基于Jdk1.8!
代码剖析
put 方法
这是 HashMap 做 put 操作的入口方法
1 | public V put(K key, V value) { |
putVal 方法
这是 HashMap 塞数据实际的逻辑代码方法
1 | /** |
treeifyBin 方法
这是 HashMap 进行链表转换判断及操作的逻辑代码方法
1 | /** |
结语
到此,对 HashMap 的 put 方法代码剖析就告一段落了,学习无止境,技术的路上,期待和您一起交流!