集合:HashMap和HashTable

本文对比了HashMap和Hashtable两个Java集合类的区别。HashMap继承自AbstractMap并实现了Map接口,允许null键和值,不保证顺序;而Hashtable继承自Dictionary,实现了Map接口,不允许null键和值,且所有方法都是同步的,保证了线程安全。

HashMap

public class HashMap<K,V>
extends AbstractMap<K,V>
implements Map<K,V>, Cloneable, Serializable

1.HashMap继承AbstractMap,实现了Map接口。

2. 基于哈希表的实现的Map接口。 此实现提供了所有可选的地图操作,并允许null的值和null键。 ( HashMap类大致相当于Hashtable ,除了它是不同步的,并允许null)。这个类不能保证地图的顺序; 特别是,它不能保证订单在一段时间内保持不变。

 

Hashtable

public class Hashtable<K,V>
extends Dictionary<K,V>
implements Map<K,V>, Cloneable, Serializable

1. Hashtable继承Dictionary,实现了Map接口。

2. 该类实现了一个哈希表,它将键映射到值。 任何非null对象都可以用作键值或值。

3.Hashtable的方法都是synchronized关键字修饰的,Hashtable是同步的,线程安全的。

 

 Hashtable是同步的。 如果不需要线程安全的实现,建议使用HashMap代替Hashtable 。 如果需要线程安全的并发实现,那么建议使用ConcurrentHashMap代替Hashtable 。

注意:Hashtable的父类Dictionary已过时。

--文章内容摘自 java1.8Api中文版。

附图:

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值