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

标签 java arraylist vector stack

Java 使用 Vector 实现 Stack 类,为什么?虽然看起来 Arraylist 应该是更好的选择。 Java 希望 Stack 是线程安全的,或者一般来说 Stack 是强制性的(我不认为是这种情况)是线程安全的,还是有任何其他理论可以使用 Vector 在 Java 中实现 Stack?

最佳答案

StackVector 出现在 JDK 1.0 中。 ArrayList 直到 JDK 1.2 才被添加。 StackVector 的继承已融入 API,因此现在无法更改。

但无论如何,这是一个过时的类(class)。修复它不是优先事项。 Stack 自己的 Javadoc writeup 说:

A more complete and consistent set of LIFO stack operations is provided by the Deque interface and its implementations, which should be used in preference to this class. For example:

Deque<Integer> stack = new ArrayDeque<Integer>();

关于java - 为什么 java.util.Stack 是使用 Vector 而不是 Arraylist 实现的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39559872/

相关文章:

java - 如何从 Action 类中的速度页面获取数据?

java - 通过jdbc访问主机时如何克服词法错误?

C++ 模板 : cannot call my function from main. cpp

c - 访问 C vector 中的写入违规

在R中不同时间复制向量中的每个元素

java - 在 Android 中加载自动完成 View 建议的最佳方法

java - 如何根据现在的月份检查选择的季节是否正确?

java - 确定二进制数的间隙长度

用于csv输出的java groovy分割数组

c# 将数组列表复制到数组