知识备忘 | hashmap、hashtable、哈希算法

参考:https://blog.csdn.net/u010297957/article/details/51974340

哈希算法:一类算法。

这类算法接受「任意长度的二进制输入值」,对输入值做换算(切碎),最终给出「固定长度的二进制输出值」。

哈希表:指一种数据结构,使用哈希算法

根据设定的Hash函数 - H(key)H(key) 和处理冲突的方法,将一组关键字映象 到一个有限的连续的地址集(区间)上,并以关键字在地址集中的象 作为记录在表中的存储位置,这样的映射表便称为Hash表。

HashMap:是Java中用哈希表实现的一种「Map」。

HashMap是继承自AbstractMap类,而HashTable是继承自Dictionary类。不过它们都实现了同时实现了map、Cloneable(可复制)、Serializable(可序列化)这三个接口

Hashtable是线程安全的,它的每个方法中都加入了Synchronize方法。
HashMap不是线程安全的,可以使用线程安全的ConcurrentHashMap。

Hashtable既不支持Null key也不支持Null value。
HashMap中,null可以作为键,这样的键只有一个;可以有一个或多个键所对应的值为null。

Hashtable默认的初始大小为11,之后每次扩充,容量变为原来的2n+1。
HashMap默认的初始化大小为16。之后每次扩充,容量变为原来的2倍。

HashMap效率更好。

你可能感兴趣的:(知识备忘 | hashmap、hashtable、哈希算法)