java面试宝典——关于集合

一:HashMap和HashTable的区别:

1.    都是实现了Map接口,所以都是以键值对形式存储,都不能存储重复的键

2.    HashMap的键和值都可以是null,但是最多只能有一个键为null

    HashTable的键和值都不可以为空

3.    HashTable是线程安全的,这意味着再同一个时间点,只能有一个线程可以修改hash表,任何线程再执行HashTable的更新操作前都需要获取到对象锁,其他线程需要等待锁的释放。

HashMap是不是线程安全的,一个线程再修改hash表的时候,其他线程同样可以对hash表进行操作,就容易造成混乱

但是HashMap相对HashTable有很多优势,现在大多数都使用HashMap,所以再多线程情况下,我们也想使用这个HashMap怎么实现同步?

HashMap可以通过Map m=Collection.synchronizedMap(new HashMap())来达到同步的效果

未完待续。。。。。。

猜你喜欢

转载自blog.csdn.net/handsome2013/article/details/80962126