java线程学习之同步容器
java的同步容器有两类:
(1)、Vector、Stack、HashTable
(2)、Collections提供的静态方法创建的类
Vector 实现了 List 接口①,Vector 实际上就是一个数组(它是可以增长的),和 ArrayList 类似②,但是 Vector 中的方法都是 synchronized 方法,即进行了同步措施。Vector容量的大小根据需求增大或缩小,用以适应创建Vector后的添加和移除项操作。
①.
②.
Stack 也是一个同步容器,它的方法也用 synchronized 进行了同步,它是Vector类的子类。Stack
类表示后进先出(LIFO)的对象堆栈。它通过五个操作对类 Vector 进行了扩展 ,允许将向量视为堆栈。它提供了通常的 push 和 pop 操作,以及取堆栈顶点的 peek 方法、测试堆栈是否为空的 empty 方法、在堆栈中查找项并确定到堆栈顶距离的 search 方法。
HashTable 实现了 Map 接口,它和 HashMap 很相似,但是 HashTable 进行了同步处理,而 HashMap 没有。此类实现一个哈希表,该哈希表将键映射到相应的值。任何非 null
对象都可以用作键或值。为了成功地在哈希表中存储和获取对象,用作键的对象必须实现 hashCode
方法和 equals
方法。