
HashMap源码
文章平均质量分 92
瓦坎达forever
这个作者很懒,什么都没留下…
展开
-
HashMap的核心方法put(K key,V value)方法源码详解,10分钟看完put方法源码知天知地
HashMap的核心方法就是 : put()和resize()HashMap面试面的比较多的部分就是hashmap的put方法了不多bb看源码~通过源码我们可以发现,put方法底层调用了一个putval方法,也就是说put方法中真正做事的是putval()方法通过源码我们很清晰的可以看到第一个参数调用了hash()方法,这个方法暗藏什么玄机?其实很简单这个putval方法有五个参数int hash 经过hash(Object key)扰动过后的hash值K key 不解释V va原创 2020-08-23 14:59:39 · 374 阅读 · 0 评论 -
HashMap的remove()方法详解
HashMap的remove()方法HashMap中有两个remove()方法,一般常用的是第一个以key为参数的remove方法 输入key–>key存在就删除public V remove(Object key) { Node<K,V> e; return (e = removeNode(hash(key), key, null, false, true)) == null ? null : e.value; }以key+原创 2020-05-16 23:46:49 · 8484 阅读 · 1 评论 -
看HashMap源码前的必备冷知识,白话文式教学,适合刚开始了解源码的新手观看
本文主要讲以下几个问题1.HashMap相比其他集合框架有什么优势?2.散列表有什么特点?3.什么是哈希?4.HashMap的继承体系?5.Node数据结构分析6.HashMap底层存储结构7.put()原理分析8.什么是哈希碰撞?9.JDK1.8为什么引入红黑树?补充说明:上面的的问题比较偏入门部分,很多人抱怨HashMap源码看不懂,老话说饭得一口一口慢慢吃,先把上面这些整懂了,源码部分带大家手撕源码就很轻松了HashMap相比其他集合框架有什么优势?我们都了解ArrayLis原创 2020-05-10 23:15:45 · 227 阅读 · 0 评论 -
手撕HashMap的resize()方法源码渗透解析+图解
散列表在不断的经过put()方法添加元素时 当指定长度的散列表达到扩容阈值 就要进行扩容的操作 如果不扩容 那么无法再往集合中添加元素 同时数据量达到一定程度还不扩容也会让HashMap的时间复杂的从O(1)–>O(n) 所以说扩容是很有必要的 但是扩容同时也带来两个问题 何时扩容? 怎样扩容?原创 2020-07-04 22:49:49 · 379 阅读 · 0 评论