知识备忘 | 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效率更好。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容