我将如何在Java中迭代堆栈

Erv*_*cci 14 java stack iterator

我想知道如何在Stack类中使用迭代器.如何为它创建迭代器类?

Baz*_*Baz 19

得到Iterator通道iterator():

Stack<YourObject> stack = ...

Iterator<YourObject> iter = stack.iterator();

while (iter.hasNext()){
    System.out.println(iter.next());
}
Run Code Online (Sandbox Code Playgroud)

或者,如果您只想打印它们,请使用enhanced-for循环:

for(YourObject obj : stack)
{
    System.out.println(obj);
}
Run Code Online (Sandbox Code Playgroud)

  • @HiteshSahu运行代码后,`Stack`将为空,因为`pop()`删除了堆栈的顶部. (2认同)
  • 堆栈迭代器中有一个错误,这种方法不返回 LIFO 顺序。http://stackoverflow.com/questions/16992758/is-there-a-bug-in-java-util-stacks-iterator (2认同)