码迷,mamicode.com
首页 > 编程语言 > 详细

java基础---HashMap和HashTable的异同之处

时间:2015-07-21 06:41:54      阅读:137      评论:0      收藏:0      [点我收藏+]

标签:

1:连个都实现了Map的接口,两者的底层数据结构相同,都是transient修饰的entry数组,transient修饰的变量不会序列化即不会持久化,序列化的过程中不会包含这个变量,这个变量的生命周期仅仅是在用户的调用过程中,不能持久化到内存磁盘中。这样便于一些敏感信息的保存

2:HashMap是不安全的,不能同步,不支持多线程并发,HashTable是安全的,有同步锁,但效率低。

3:HashMap从AbstractMap继承而来,HashTable是从Dictionary继承而来

4:HashMap允许Null存在,表示key对应的value值不存在或者就是null。而HashTable不能有null

5:HashTable的hash是直接使用对象的hash,而HashMap要重新算起散列值,因而更加散列,有助于减少冲突。提高效率

6:HashTable可以用Itertor来实现遍历,HashMap也可以用这个,但在早起版本中HashTable还可以用Enumeration来遍历

7:HashTable缺省初始化数组的大小是11,可以指定数组的初始化大小,扩容采用的规则是old*2+1,

        HashMap缺省的数组大小是16,长度保持2的倍数,扩容时选择大于initCaptiy的最小的2的倍数的大小

 

8两者都支持FF失败机制

java基础---HashMap和HashTable的异同之处

标签:

原文地址:http://www.cnblogs.com/lucystudy/p/4663237.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!