Java 堆栈扩展向量

Java 堆栈扩展向量,java,vector,stack,Java,Vector,Stack,如果堆栈扩展向量,这是否意味着堆栈被同步化 来自Vector Java文档的注释 与新的集合实现不同,Vector是同步的 是的,它是同步的,但是根据,您应该更喜欢使用堆栈而不是堆栈 从: 更完整和一致的后进先出堆栈操作集是 由Deque接口及其实现提供,应该 优先于该类使用。例如: Deque stack=new ArrayDeque() 是的,从Vector继承的方法在堆栈中保持同步。自己的堆栈方法peek、pop、search在堆栈中同步。Stack.push和Stack.empty方法不

如果堆栈扩展向量,这是否意味着堆栈被同步化

来自Vector Java文档的注释

与新的集合实现不同,Vector是同步的


是的,它是同步的,但是根据,您应该更喜欢使用堆栈而不是
堆栈

从:

更完整和一致的后进先出堆栈操作集是 由Deque接口及其实现提供,应该 优先于该类使用。例如:

Deque stack=new ArrayDeque()


是的,从Vector继承的方法在堆栈中保持同步。自己的堆栈方法peek、pop、search在堆栈中同步。Stack.push和Stack.empty方法不同步,但

public boolean empty() {
    return size() == 0;
}

public E push(E item) {
    addElement(item);
    return item;
}

这两种方法都在调用Vector的同步方法,因此Stack.empty和Stack.push是线程安全的。

如果有疑问(*仅限openjdk;),为什么不使用LinkedList?ArrayDeque是Deque的一个实现,而Vector是List+1的一个实现。我认为这是正确的。我不认为扩展向量会使堆栈同步。这就是方法的定义。对,它不是一个可以同步的类,而是它的方法