关闭

HashMap 和HashTable 和HashSet

79人阅读 评论(0) 收藏 举报
分类:

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对象,每个数组元素都是引用对象

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:3966次
    • 积分:225
    • 等级:
    • 排名:千里之外
    • 原创:19篇
    • 转载:3篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档