HashMap 源码分析 (三)
🍁 作者:知识浅谈,CSDN 博客专家,阿里云签约博主,InfoQ 签约博主,华为云云享专家
📌 擅长领域:全栈工程师、爬虫、ACM 算法
💒 公众号:知识浅谈
HashMap 源码分析(三)总结
正菜来了⛳⛳⛳
🎈
🍮HashMap(int initialCapacity)
含义:这个函数的含义是执行初始容量的 HashMap 的构造函数,并且使用默认的加载因子,之后调用含有初始值何加载因子的构造函数。
🍮HashMap()
含义:这个函数的意思是采用无参构造函数,使用默认的容量值和加载因子进行构造函数的创建。
🍮HashMap(Map<? extends K, ? extends V> m)
含义:构造一个与指定 Map 具有相同映射的新 HashMap。 HashMap 是使用默认加载因子 和足以容纳指定 Map 中的映射的初始容量创建的,函数的最后调用 putMapEntries 会把传递过来的 map 对象 m 中的键值对赋值给新创建的 Map 对象。
接着我们继续看 putMapEntries 这个对象用法。
🍮putMapEntries()
含义:首先这个函数的主要作用就是相当于啊调用 putAll 把 m 对象中的键值对传递给新创建的对象中,从下方的函数中可以看出先求出传递过来的 m 的大小,如果大小大于 0,再进行下一步,如果 s 大于阈值 threshold,调用 resize()初始化或加倍表大小,然后对 m 这个对象进行遍历,分别把 key 和 value 填充到当前对象中。
🍮int size()
含义:这个函数的含义就比较简单了,就是取出 map 中的 size 的大小。
🍮isEmpty()
含义:这个函数的意思是查看对象是不是空,内部判断还是根据 size 是否为 0 来判断的。
🍮get(Object key)
含义:这个就是返回 Map 中对应的 key 这个键对应的值,但是内部调用可 getNode 这个函数获取 key 对应的 value 值,第一个参数是 key 对应的哈希值,第二个参数是这个 key,调用这个函数返回对应的节点。
上边的函数中调用了 getNode()函数,具体的内容下篇文章中具体探究。
🍚总结
以上是关于 HashMap 类的相关源码的的一些函数的具体实现,希望有所帮助,Written By 知识浅谈
版权声明: 本文为 InfoQ 作者【知识浅谈】的原创文章。
原文链接:【http://xie.infoq.cn/article/091fea7e9d67f2a70d3b403a2】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论