黑马程序员技术交流社区

标题: HashMap和Hashtable的区别 [打印本页]

作者: darkads    时间: 2014-9-15 13:17
标题: HashMap和Hashtable的区别
结构性的修改:添加或删除一个或多个映射关系的任何操作;仅改变与实例已经包含的键关联的值不是结构上的修改。

HashMap:
1.不是线程安全的,它的实现不是同步的,如果多个线程同时访问一个哈希映射,而其中至少一个线程从结构上修改了该映射,则它必须 保持外部同步
2.不能使用null作为键与值
LinkedHashMap继承至HashMap,它在后台维护了一个可以定义迭代顺序的双重链接列表,可以保存插入顺序或者访问顺序

Hashtabl:
1.线程安全的
2.不可使用null作为键与值
3.用作键的对象必须实现hashCode()与equals()方法
Properties:继承至Hashtable,表示一个持久的属性集,可保存在流中或从流中加载,每个键与值必须是String字符串

以上四个由collection视图获得的迭代器都是快速失败的,也就是说如果获得了迭代器,期间做出了非迭代器的remove()以外的结构性操作,迭代器都将抛出异常




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2