HashMap,HashTable,HashSet区别

HashMap与HashSet区别:
1>实现的接口不同,hashmap实现Map接口,HashSet实现set接口
2>存放的形式不同,HashMap中存放的是键值对,HashSet中存放的是对象。
3>添加元素时的方法不同,HashMap:put(),,HashSet:add()
4>求索引时用到key.hashcode(),value.hashcode(),HashSet只用了成员对象的hashcode
相同点:都不允许有重复的值
HashSet存储在底层使用key不为空,value为空的HashMap来存储的。

HashMap与HashTable区别:
1>实现的类不同,如下图
2>HashTable使用sychronized同步锁实现线程安全的,HashMap不能保证。
3>判断某个值在其key或value中
HashMap:ContainsValue()/ContainsKey()
HashTable:contains();
4> HashMap中1个key可为null,多个值可为null
HashMap中key/value不等于null
HashMap get(“value”)==null时,不能断言,key为null还是非null
5>扩容:HashMap:2*old HashTable:2*old+1

原文地址:https://www.cnblogs.com/wangxiaopei/p/8551218.html