为什么Java堆栈有一个搜索方法?

为什么Java堆栈有一个搜索方法?,java,stack,Java,Stack,从我对堆栈的了解来看,这种方法似乎与堆栈的整个要点背道而驰——如果您需要知道特定元素在堆栈中的位置,那么为什么要使用堆栈 编辑:我不是想浪费任何人的时间或问愚蠢的问题,我是一名学生,我只是想诚实地找出这个函数背后的原理,以便我能成为一名更好的程序员。我这样说: Java有其不一致之处,这就是其中之一。 如果你深入研究,你会发现堆栈是Vector的一个子类,它继承了Vector的方法,而Vector的方法似乎也没有什么意义 编程语言是人类创造的活生生的、不断发展的东西,我认为你总能找到没有意义的东

从我对堆栈的了解来看,这种方法似乎与堆栈的整个要点背道而驰——如果您需要知道特定元素在堆栈中的位置,那么为什么要使用堆栈


编辑:我不是想浪费任何人的时间或问愚蠢的问题,我是一名学生,我只是想诚实地找出这个函数背后的原理,以便我能成为一名更好的程序员。我这样说:

Java有其不一致之处,这就是其中之一。 如果你深入研究,你会发现堆栈是Vector的一个子类,它继承了Vector的方法,而Vector的方法似乎也没有什么意义

编程语言是人类创造的活生生的、不断发展的东西,我认为你总能找到没有意义的东西,或者你希望用更好的方式创造的东西(无论“更好”是什么意思)。
在某些情况下,你会发现更多,而在某些情况下,你会发现更少的缺陷。

仅仅因为容器有一个顺序,你认为你不应该检查它的元素?你必须询问用Java实现它的人。此外,
Stack
是obesolete,您应该使用
Deque
实现。一些较旧的Java集合实现,实际上还有大部分JDK都有非常糟糕的实现或API。很多废话没有被删除的唯一原因是向后兼容性。所以相信你的直觉——如果它看起来不好,很可能是。它并不是因为在JDK中就自动好。@azurefrog我的观点是,当您使用堆栈时,您不必关心元素在堆栈中的确切位置