【发布时间】:2013-03-18 21:41:08
【问题描述】:
我不知道为什么我的程序的这部分不起作用,我在 while 循环外查看并确认堆栈不为空,但是当我尝试在 while 循环内访问它时出现此错误:
“线程“主”中的异常 java.util.EmptyStackException 在 java.util.Stack.peek(未知来源)"
这是相关的代码
String test = list.peek();
System.out.println(test);
while(list.peek() != null)
{
temp = list.pop();
还有更多的while循环,但是一旦在括号内调用list.peek就会中断,我尝试将其更改为“while(test != null)”以进行测试,但一旦到达list.pop()就会中断
【问题讨论】:
-
list.empty()应该可以完成这项工作。 -
list的声明是什么? -
我应该在哪里使用 list.empty()?声明是“public Stack
list = new Stack ();” -
给出的错误信息表明
list是Stack。 -
看看我(和 rgettman 的)答案,他们向您展示了如何使用 empty()。这个想法是,对于循环的每次迭代,在循环开始之前检查堆栈是否为空。这样你就知道循环内的堆栈不是空的
标签: java while-loop stack