HashMap和Hashtable的区别 ---学习笔记
2011-07-27 07:36
519 查看
1.HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都完成了Map接口,主要区别在于HashMap允许空(null)键值(key),
由于非线程安全,效率上可能高于Hashtable.
HashMap允许将null作为一个entry的key或者value,而Hashtable不允许。
HashMap把Hashtable的contains方法去掉了,改成containsvalue和containsKey.因为contains方法容易让人引起误解。
2. Hashtable继承自Dictionary类,而HashMap是Java1.2引进的Map interface的一个实现。
最大的不同是,Hashtable的方法是Synchronize的,而HashMap不是,在多个线程访问Hashtable时,不需要自己为它的方法实现同步,
而HashMap 就必须为之提供外同步。Hashtable和HashMap采用的hash/rehash算法都大概一样,所以性能不会有很大的差异。
就HashMap与HashTable主要从三方面来说。
一.历史原因:Hashtable是基于陈旧的Dictionary类的,HashMap是Java 1.2引进的Map接口的一个实现
二.同步性:Hashtable是线程安全的,也就是说是同步的,而HashMap是线程序不安全的,不是同步的
三.值:只有HashMap可以让你将空值作为一个表的条目的key或value
由于非线程安全,效率上可能高于Hashtable.
HashMap允许将null作为一个entry的key或者value,而Hashtable不允许。
HashMap把Hashtable的contains方法去掉了,改成containsvalue和containsKey.因为contains方法容易让人引起误解。
2. Hashtable继承自Dictionary类,而HashMap是Java1.2引进的Map interface的一个实现。
最大的不同是,Hashtable的方法是Synchronize的,而HashMap不是,在多个线程访问Hashtable时,不需要自己为它的方法实现同步,
而HashMap 就必须为之提供外同步。Hashtable和HashMap采用的hash/rehash算法都大概一样,所以性能不会有很大的差异。
就HashMap与HashTable主要从三方面来说。
一.历史原因:Hashtable是基于陈旧的Dictionary类的,HashMap是Java 1.2引进的Map接口的一个实现
二.同步性:Hashtable是线程安全的,也就是说是同步的,而HashMap是线程序不安全的,不是同步的
三.值:只有HashMap可以让你将空值作为一个表的条目的key或value
相关文章推荐
- 自学Java系列 笔记5 Java学习之HashMap和Hashtable的区别
- Java 学习笔记 05 HashMap 和 Hashtable 区别与联系
- HashMap和Hashtable的区别 ---学习笔记
- hashmap 与hashtable区别(学习工厂模式笔记)
- Java学习笔记之HashMap和Hashtable的区别
- Java理解笔记之HashMap与Hashtable区别
- Java 深入学习(11) —— HashMap、HashTable、TreeMap 的区别
- HashMap和HashTable源码学习笔记
- 黑马程序员_学习笔记:10) 集合框架2:Set(HashSet、TreeSet)、Map(Hashtable、HashMap、TreeMap)、Collections、Arrays
- JAVA学习笔记(二十二)- 集合HashMap与Hashtable
- HashMap与HashTable学习笔记
- Java基础知识学习总结(四)---Hashtable和HashMap的区别与联系分析
- Java入门学习- 理解List和HashMap和HashTable的用法和区别
- Java基础知识强化之集合框架笔记66:Map集合面试题之HashMap和Hashtable区别(重要)
- JSP学习笔记:Java中HashMap,LinkedHashMap,TreeMap的区别
- ArrayList和Vector的区别,HashMap和Hashtable的区别---小笔记
- JavaSE 学习参考:HashMap和Hashtable的区别
- 学习笔记:Hashtable和HashMap
- 【笔记整理】hashMap和hashtable的区别
- Java学习之HashMap和Hashtable的区别