package java.util;
import java.io.IOException;
import java.io.InvalidObjectException;
import java.io.Serializable;
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
import java.util.function.BiConsumer;
import java.util.function.BiFunction;
import java.util.function.Consumer;
import java.io.IOException;
import java.io.InvalidObjectException;
import java.io.Serializable;
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
import java.util.function.BiConsumer;
import java.util.function.BiFunction;
import java.util.function.Consumer;
import java.util.function.Function;
/* 哈希表格是基于实现Map接口。这个实现提供所有map接口可选操作,它允许null值和null键。
(HashMap类与Hashtable大概一致,除了HashMap是不同步的和允许为null。),这个类不能
保证是有序的,尤其是,它不能保证这个顺序是不变化的,它有可能每次都不一样。
这个实现对基础操作(get 和 put)所花费的时间是常量的,假设这个哈希函数计算结果合理将
这些元素分布在桶内,迭代集合视图要求的时间取决于HashMap实例容量的大小,再加上大小(键值对数量),
所以,如果你要迭代性能要求高,它非常重要的是不要初始化容量太大(或者太低装载系数)。
一个hashMap的实例有两个重要影响性能的因素 : 初始化容量和装载系数,哈希表格容量是桶中元素的数量
初始化的容量的大小在哈希表格创建的时候确定。装载系数是当哈希表格将要装满的时候自动增加容量的一个系数。
当entry的数量超过当前装载系数要求的数量,这个哈希表格会重新构建,所以哈西表格大约两倍桶的数量。
一般情况,这个默认的装载系数(0.75),它在时间和内存空间的一个折中,更高的值减少空间,但增加了查询
时间,(HashMap类反射操作是get和put),期望在Map的中数量和装载系数都应该被考虑在内,当设置它的初始容器
为了最小化重复操作,如果初始容量大于最大entry数量除以装载系数。没有重新操作将会发生。
*/