(这是使用java.util.Stack)
在我的代码中,我得到了一个值,比如说一个字符串“1”,我想把它放在这个数字堆栈的底部。
“4”
“3”
“2”
现在我为java.util.Stack使用的方法实际上并没有一种方法可以将我的值“1”发送到这个堆栈的底部,而是只让我将值推送到堆栈的顶部堆栈对我没有任何好处。
有没有办法可以将“1”发送到这个堆栈的底部?
你可以这样做。该add
方法允许您将值放在堆栈中的任何位置。但是你基本上颠覆了堆栈的性质。堆栈是 LIFO(后进先出)。如果这是您想要做的,您可能需要重新考虑您的设计。有多种Collection
实现可供您选择。检查 API 并阅读文档,看看哪一个最适合您的需求。
Stack<Integer> stack = new Stack<>();
stack.push(4);
stack.push(3);
stack.push(2);
stack.add(0,1);
while(!stack.isEmpty()) {
System.out.println(stack.pop());
}
印刷
2
3
4
1
你实际上不能。您只能推送和弹出堆栈的顶部元素。如果您希望同时通过顶部和底部访问您的数据结构,您应该使用另一个数据结构。尝试使用 LinkedList 类代替它提供您想要做的事情。