割り当てのために、java.util.Stackの一般的な関数を実装するカスタムスタッククラスを作成する必要があります。これらのスタックの1つは、クラス拡張により、実際のjava.util.Stackクラスに基づいています。ただし、もう1つは、プッシュまたはポップできる単一リンクスタックを作成できる「リンク可能」ノードの作成に基づいています(この場合、はとで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()
ます。