HashMap和Hashtable都实现了Map接口,但决定用哪一个之前先要弄清楚它们之间的分别。主要的区别有:线程安全性,同步(synchronization),以及速度。
1. 开放定址法:线性探测再散列、二次探测再散列、再随机探测再散列;
2. 再哈希法:换一种哈希函数;
3. 链地址法 :在数组中冲突元素后面拉一条链路,存储重复的元素;
4. 建立一个公共溢出区:其实就是建立一个表,存放那些冲突的元素。
什么时候会产生冲突
HashMap中调用 hashCode() 方法来计算hashCode。