HashSet 底层实现使用HashMap,而HashMap底层实现使用了TreeMap。
HashSet关注的值为HashMap的值,而HashMap关注的值为key-value对
HashSet根据Hash算法决定元素的储存位置,而HashMap根据Hash算法决定key-value值得存储位置
Hashtable是同步的,而HashMap在缺省的情况下是非同步的,在多线程的情况下HashMap需要做同步处理
Hashtable的key和value值不能为null,而HashMap可以为null,当HashMap的key值为null时是唯一的,判断是否存在key值应当 使用containsKey()
Hashtable和HashMap实现方式的数组和扩容方式不同 Hashtable 中hash数组默认11,扩容为old*2+1 ,HashMap中hash数组默认为16,扩容为2的指数
Hashtable能使用Iterator 和 Enumeration 而HashMap只能使用Iterator
Hashtable直接使用hashCode计算,而HashMap需要重新计算hash值
集合存储并不是把Java对象放到集合中储存,而是把Object对象的引用放到集合的位置,该引用指向Object对象,每个数组元素都是引用对象