集合Java堆栈推送()与添加()
我试图使用Stack
,但我对术语有点困惑
根据Java文档,我发现Stack
类只有push(E e)
并将add(E e)
和addAll(Collection<? extends E> c)
作为从Vector
类继承的方法
它们是否具有相同的功能,或者最好使用push(...)
将元素插入Stack
对象
换句话说,如果我使用add(...)
而不是push(...)
,我会遇到任何问题吗
你可以在下面搜索框中键入要查询的问题!
我试图使用Stack
,但我对术语有点困惑
根据Java文档,我发现Stack
类只有push(E e)
并将add(E e)
和addAll(Collection<? extends E> c)
作为从Vector
类继承的方法
它们是否具有相同的功能,或者最好使用push(...)
将元素插入Stack
对象
换句话说,如果我使用add(...)
而不是push(...)
,我会遇到任何问题吗
# 1 楼答案
这都是关于继承的问题,如果它是
Stack
,您应该使用push()
来明确并遵循模型。但事实上,根据Java SE规范:将项目推到堆栈顶部。这与:
addElement(item)
的效果完全相同# 2 楼答案
如果您使用的是
Stack
,那么应该使用push()
,因为这是将元素添加到堆栈中的标准方法(由于Stack
的数据结构的思想)。这意味着“栈顶”是您刚刚push()
编辑的项您应该只在
Stack
的顶部添加和删除数据,如果您认为需要其他方式添加数据(添加到中间或结尾),那么我建议不要使用Stack
,因为它会使代码更难理解编辑:(反映问题编辑) 正如我所提到的,如果我处理的是一个
Stack
,我将不期望看到add()
add()
不是使用Stack
的标准语法,push()
是。我建议只使用javadoc
主体中定义的函数,除非您特别需要继承的函数# 3 楼答案
(对不起,如果我的英语不好,我来自MX)
理论上,是一样的,因为add是所有泛型类的方法。。。但是非常推荐使用push,因为您使用的是一个堆栈,如果您使用“push”方法而不是“add”,也许您会了解更多
# 4 楼答案
当然,您不会遇到任何问题,因为
add
是List
接口以及Stack
的一部分,但是您应该注意到代码的进一步可读性以及其他程序员在其中的意图push
方法将为他们提供一条线索,表明他们正在使用Stack
对象,他们将清楚地知道期望从中得到什么。还请注意push
的返回值与add
不同(前者具有“pushobject”类型,后者仅为boolean
响应)# 5 楼答案
唯一的区别是返回类型
但建议对堆栈使用推送方法
# 6 楼答案
它们是一样的
从JavaDoc开始: