HashMap与HashTable的区别(精简版)

对于HashMap与HashTable的区别这个老掉牙的问题,虽然平时我们在开始发都把集合用的很溜,但是要让你讲出来或者是说出它的内在原理,很多人一脸懵逼。接下来我就通过三个方面简单概括这个问题:

背景:
Hashtable是基于陈旧的Dictionary类的,HashMap是Java 1.2引进的Map接口的一个实现

相同之处:
1.它们都是数据的集合,可以存放多个数据对象;
2.都是由key/value构成;
3.都是hash成员。

不同之处:
1.线程安全性:
hashmap:线程不安全;
hashtable:线程安全。

2.同步(synchronization):
hashmap:非同步。要想线程安全同步,
则需要:Map m = Collections.synchronizeMap(hashMap);
hashtable:同步。

3.速度
hashmap:由于是非同步可允许多线程访问的,所以效率高;
hashtable:由于是同步的单线程资源访问的模式,所以效率低。

4.结构:
hashmap:可以存放null的键值对,去掉了HashTable 的contains方法,但是加上了containsValue()和containsKey()方法;
hashtable:不能存入null的任何数据。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值