Java:Stack.addAll 和单独推送元素一样吗?

标签 java stack

如果我想一次添加多个元素,而不考虑它们的顺序(对于 DFS),Java 用于 Stack 的通用 addAll() 方法是否与特定于 Stack 的 push() 的工作方式相同,只是使用一个数字的元素?

最佳答案

简短回答:在功能上,它们实现了相同的目标,但不一定以相同的方式实现。

长答案:来自 Stack#push 的文档:

Pushes an item onto the top of this stack. This has exactly the same effect as: addElement(item)

此外,Vector#addElement说:

Adds the specified component to the end of this vector

因此,push 附加到 Vector 的末尾。

现在,来自 Vector#addAll 的文档:

Appends all of the elements in the specified Collection to the end of this Vector, in the order that they are returned by the specified Collection's Iterator.

这与在每个元素上调用 addElement 具有相同的效果,因此(通过扩展)与在每个元素上调用 push 具有相同的效果。

也就是说,addAll 可能会更有效率。

关于Java:Stack.addAll 和单独推送元素一样吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50122995/

相关文章:

Java String.replaceAll 不替换并发重复序列

java - 用一些规则替换嵌套字符串

c++ - 处理堆栈上的对象销毁

c - 如果没有堆栈指针,如何找到堆栈的当前位置?

java - 值得在 selenium 中使用文件属性吗?

java - Java中获取文件内容

java - 如何停止关闭 JFrame 窗体?

堆栈 - 为什么是 PUSH 和 POP?

c# - c#中使用single方法会出现Stackoverflow异常吗?

java - JTabbedPane 未选择的选项卡不会填充 JPanel,而选择的选项卡则会填充 JPanel