Java的HashMap
HashMap 概述 HashMap是一个 jdk8源码 构造器 有4个构造器: public HashMap() public HashMap(int initialCapacity) public HashMap(int initialCapacity, float loadFactor) public HashMap(Map<? extends K, ? extends V> m) 除了显式设置loadFactor,其他情况都是设置为默认的0.75。 传入另外一个Map需要满足泛型上下界的要求,比如只能由<String,String>转成<Object,Object>。 主要成员变量 Node<K,V>[] table; 哈希表。 Set<Map.Entry<K,V>> entrySet; 用来遍历的Entry集合。 int size; map中元素个数。 int modCount; 源码上说的是结构化修改的次数,关系不大。 int threshold; 阈值,当size大于这个阈值,就要resize final float loadFactor; 加载因子,表示哈希表中元素的密集程度,默认是0.75。 put table 哈希表,就是一个Node数组,而Node是HashMap里一个静态内部类,实现了Map接口里的Entry接口,可以看出Node类其实是一个链表节点