一文读懂HashMap和HashTable的区别以及常见面试题( 二 )

\n

本文参考http://cmsblogs.com/?p=176

\n

HashMap

\n

HashMap也是我们使用非常多的Collection , 它是基于哈希表的 Map 接口的实现 , 以key-value的形式存在 。 在HashMap中 , key-value总是会当做一个整体来处理 , 系统会根据hash算法来来计算key-value的存储位置 , 我们总是可以通过key快速地存、取value 。 下面就来分析HashMap的存取 。

\n

定义

\n

HashMap实现了Map接口 , 继承AbstractMap 。 其中Map接口定义了键映射到值的规则 , 而AbstractMap类提供 Map 接口的骨干实现 , 以最大限度地减少实现此接口所需的工作 , 其实AbstractMap类已经实现了Map , 这里标注Map LZ觉得应该是更加清晰吧!

\n

public class HashMap<KV>    extends AbstractMap<KV>    implements Map<KV> Cloneable Serializable

\n

构造函数

\n

HashMap提供了三个构造函数:  HashMap():构造一个具有默认初始容量 (16) 和默认加载因子 (0.75) 的空 HashMap 。  HashMap(int initialCapacity):构造一个带指定初始容量和默认加载因子 (0.75) 的空 HashMap 。  HashMap(int initialCapacity float loadFactor):构造一个带指定初始容量和加载因子的空 HashMap 。

推荐阅读