hashmap和hashtable和concurrent
时间: 2023-11-01 22:26:11 浏览: 114
hashmap与hashtable区别
HashMap和Hashtable都是Java中的键值对存储容器,它们的作用都是用来存储一组键值对,其中键是唯一的,值可以重复。然而它们之间也有一些区别:
1.线程安全:Hashtable是线程安全的,而HashMap是非线程安全的。如果在多线程环境下需要使用HashMap,则需要使用ConcurrentHashMap类。
2.null键和null值:HashMap允许null键和null值,而Hashtable不允许。如果尝试将null值或null键插入到Hashtable中,则会抛出NullPointerException异常。
3.继承关系:HashMap是继承自AbstractMap类,而Hashtable是继承自Dictionary类。
ConcurrentHashMap是在HashMap的基础上进行了改进,它是线程安全的,并且在多线程环境下性能更好。它的主要特点是采用了分段锁机制,将整个Map分成了若干个小的Map,每个小Map都有自己的锁,这样在多线程环境下,不同的线程可以同时访问不同的小Map,从而大大提高了并发性能。
阅读全文