测试代码:
int initialCapacity = 16;
float loadFactor = 0.75f;
HashMap<String,String> hashMap = new HashMap<>(initialCapacity,loadFactor);
System.out.println(hashMap.put("1","v1"));
System.out.println(hashMap.put("1","v2"));
Iterator<String> it = hashMap.keySet().iterator();
while (it.hasNext()){
System.out.println(hashMap.get(it.next()));
}
- // 系统默认初始容量,必须是2的n次幂,这是出于优化考虑的
- static final int DEFAULT_INITIAL_CAPACITY = 16;
- // 系统默认最大容量
- static final int MAXIMUM_CAPACITY = 1 << 30;
- // 系统默认负载因子,可在构造函数中指定
- static final float DEFAULT_LOAD_FACTOR = 0.75f;
- // 用于存储的表,长度可以调整,且必须是2的n次幂
- transient Entry[] table;
- // 当前map的key-value映射数,也就是当前size
- transient int size;
- // 阈值
- int threshold;
- // 哈希表的负载因子
- final float loadFactor;
- // 用于确保使用迭代器的时候,HashMap并未进行更改
- transient volatile int modCount;
HashMap构造方法中两个参数initialCapacity(初始化容器大小),loadFactor(负载因子)
时间: 2024-10-15 23:37:38