源码
C:\ProgramFiles\Java\jdk1.8.0_181\jre\lib\rt.jar!\java\util\HashMap.java
简介
本类实现了java.util.Map
接口并允许空值和空键,HashMap的实例具有两个影响其性能的参数:初始容量和负载因子。容量是哈希表中存储桶的数量,初始容量只是创建哈希表时的容量。当哈希表中的条目数超过负载因子和当前容量的乘积时,哈希表将被自动扩容(内部数据结构将被重建)。
通常,默认负载因子(.75)在时间和空间成本之间提供了一个很好的权衡。较高的值会减少空间开销,但会增加查找成本(反映在HashMap类的大多数操作中,包括get和put)。如果将大量的键值对存储在HashMap实例中,则应该创建相匹配的容量,以避免多次触发自动扩容影响程序性能。
本类是线程不安全的。如果多个线程同时访问,并且至少有一个线程在结构上修改,则必须在外部进行同步。如果需要在多线程环境使用本类,可以用Map m = Collections.synchronizedMap(new HashMap(...));
进行包装。