为什么我的 java 堆栈在打印时不遵循 LIFO 原则?
import java.util.*;
class StackTrace
{
public static void main(String []ar)
{
Stack myStack = new Stack();
myStack.push(1);
myStack.push(2);
myStack.push(3);
myStack.push(4);
System.out.println(myStack);
Object Arr[]=myStack.toArray();
for(Object a:Arr)
System.out.println(a);
}
}
输出:
[1, 2, 3, 4]
1
2
3
4
在上面的代码中,语句System.out.println(myStack);
是按顺序打印数据,而不是后进先出的方式。
为什么会这样?
上面的程序中的 toArray()
方法是如何工作的?
最佳答案
toArray 方法将按照元素插入堆栈的顺序返回元素数组。 如果您需要 LIFO 中的元素,请使用 pop 方法。 您可以在此处查看 Stack api,
http://docs.oracle.com/javase/6/docs/api/java/util/Stack.html
关于Java 堆栈不遵循 LIFO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26819240/