???? 作者:知识浅谈,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 知识浅谈