刷题老刷到这个问题相关的。
但是我去搜索,却没有很全面的解释,解释要么全篇解释,要么说一个两个。
今天整理一下。
Vector
:是一个动态数组,实现了List接口,并且线程安全。Hashtable
:实现了Map接口,是一个键值对的集合,线程安全。Stack
:是一个后进先出(LIFO)的集合,线程安全。ConcurrentHashMap
:是对HashMap的改进,实现了ConcurrentMap接口,线程安全。CopyOnWriteArrayList
:是一个可变的、线程安全的ArrayList,使用了写时复制的策略,适用于读多写少的场景。CopyOnWriteArraySet
:是一个可变的、线程安全的Set,也使用了写时复制的策略。
另外,Collections提供了基本每种集合类型都有的方法: synchronizedXxx() 方法,以解决多个线程同时操作一个集合的并发问题。