对于作业,我必须创建一个自定义堆栈类来实现 java.util.Stack 的常用功能。通过类扩展,这些堆栈之一基于实际的 java.util.Stack 类。然而,另一个基于创建“可链接”节点,允许您创建一个可以推送或弹出的单链接堆栈(Linkable
在这种情况下,是一个由getNext()
和组成的接口setNext()
)。我有基本的代码,基本上如下:
public class LStack {
Linkable head;
public pop() { /* Pop element off of stack */ }
public push() { /* Push element onto stack */ }
public front() { /* Return tail of stack without removing it */ }
public makeNull() { /* Clear entire stack */ }
public empty() { /* Return true or false based on emptiness of stack */ }
}
对于作业的下一部分,我必须Iterator
使用iterator()
我将在 中实现的方法创建一个实例LStack
。在尝试实现迭代器时,我一直在试图弄清楚如何实现Iterator.next()
方法覆盖。不幸的是,我的教授强烈反对泛型,所以我不能使用Iterator<E>
或类似的东西来为我正在迭代的内容提供上下文。这是我当前的Iterator
代码:
class LIterator implements Iterator {
Object current;
LStack stack;
LIterator(LStack stack) {
current = null;
this.stack = stack;
}
// .... unimplemented next(), hasNext(), remove()
}
如何从迭代器中检索下一个对象?我曾尝试强制转换为一个Linkable
对象以便我可以使用getNext()
,但 eclipse 将其标记为与Iterator.next()
.