为什么使用Vector而不是Arraylist实现java.util.Stack

chi*_*ohi 4 java stack vector arraylist

Java使用Vector实现Stack类,为什么?虽然看起来Arraylist应该是一个更好的选择.Java希望Stack是线程安全的,或者对于一般的Stack(我认为不是这种情况)是必须的线程安全还是有任何其他理论来使用Vector来实现Java中的Stack?

Joh*_*ica 6

StackVector出现在JDK 1.0中.ArrayList直到JDK 1.2才添加.Stack它的继承属于VectorAPI,因此现在无法改变.

但无论如何,这是一个过时的课程.修复它不是一个优先事项.Stack自己的Javadoc写道说:

Deque接口及其实现提供了更完整和一致的LIFO堆栈操作集,应该优先使用该类.例如:

Deque<Integer> stack = new ArrayDeque<Integer>();
Run Code Online (Sandbox Code Playgroud)