我将如何在Java中迭代堆栈
我想知道如何在Stack类中使用迭代器。 如何为它创建迭代器类?
你可以这样做:
for (Iterator iterator = stack.iterator(); iterator.hasNext();) { MyObject myObject = iterator.next(); myObject.doStuff(); }
Stack
听起来像是实现了自定义堆栈类。 你的“东西”应该实现Iterable
接口并提供Iterator
的实现。
public class MySomethingThatIsAStack implements Iterable { @Override public Iterator iterator() { return new Iterator () { // your implementation of the iterator, namely the // methods hasNext, next and remove } } }
I am working on something that is implementing a stack using queues
这是否意味着您没有使用Java Stack
实现? http://docs.oracle.com/javase/6/docs/api/java/util/Stack.html它基于Vector而不是队列。
如果您正在使用Java Stack
实现,则可以像其他答案一样使用迭代器。 否则,如果这是一个自定义Stack
,则必须实现Iterable
接口。 然后你可以做其他答案。