Hashtable和HashMap
来源:互联网 发布:淘宝新手开店培训 编辑:程序博客网 时间:2024/05/18 02:00
Hashtable和HashMap类有三个重要的不同之处。第一个不同主要是历史原因。Hashtable是基于陈旧的Dictionary类的,HashMap是Java 1.2引进的Map接口的一个实现。
也许最重要的不同是Hashtable的方法是同步的,而HashMap的方法不是。这就意味着,虽然你可以不用采取任何特殊的行为就可以在一个多线程的应用程序中用一个Hashtable,但你必须同样地为一个HashMap提供外同步。一个方便的方法就是利用Collections类的静态的synchronizedMap()方法,它创建一个线程安全的Map对象,并把它作为一个封装的对象来返回。这个对象的方法可以让你同步访问潜在的HashMap。这么做的结果就是当你不需要同步时,你不能切断Hashtable中的同步(比如在一个单线程的应用程序中),而且同步增加了很多处理费用。
第三点不同是,只有HashMap可以让你将空值作为一个表的条目的key或value。HashMap中只有一条记录可以是一个空的key,但任意数量的条目可以是空的value。这就是说,如果在表中没有发现搜索键,或者如果发现了搜索键,但它是一个空的值,那么get()将返回null。如果有必要,用containKey()方法来区别这两种情况。
一些资料建议,当需要同步时,用Hashtable,反之用HashMap。但是,因为在需要时,HashMap可以被同步,HashMap的功能比Hashtable的功能更多,而且它不是基于一个陈旧的类的,所以有人认为,在各种情况下,HashMap都优先于Hashtable。
- Hashtable和HashMap对象
- HashMap和Hashtable区别
- Hashtable和HashMap类
- Hashtable和HashMap
- Hashtable和HashMap
- Hashtable和HashMap
- hashMap和HashTable
- HashMap 和 HashTable
- Java Hashmap 和 Hashtable
- hashtable 和hashmap比较
- HashSet 、HashMap 和 HashTable
- hashtable和hashmap区别
- HashMap和Hashtable
- HashMap和HashTable
- hashtable和hashmap比较
- HashMap和HashTable
- hashmap和hashtable
- HashTable,HashMap和TreeMap
- C++显式构造函数 [翻译]
- Servlet过滤器介绍之原理分析
- 全面理解javascript的caller,callee,call,apply概念
- JavaMail 深入浅出
- 省市县三级联动菜单
- Hashtable和HashMap
- Map.Entry 类使用简介
- google trick
- C#实现顺序表
- 奥运金牌金镶玉到底值多少钱
- Linux下实现ADSL上网
- 南狐软件
- 一条导出某条记录字段的语句
- HTML网页中div如何挡住select