私は別のリンクリストを実装する問題に取り組んでいます。すべてのリストクラスには2つの内部クラスが含まれています。 Node-classとIterator-classである。異なるリストクラスで同じ内部クラスを使用する方法は?
これらの内部クラスは完全に同一です。イテレータークラスでは、メソッドのいくつかは外部クラスからの情報へのアクセスに依存しています。これはうまく動作します。 Javaでこれを行う方法はありますか?私はすべての異なるリストクラスに同じコードを含める必要はありません。私は無知を感じる - 私はちょうど見てどこを知らない。
class Node{
Node next;
Node previous;
private T data;
Node(T inn){
data = inn;
}
public Node getNesteNode(){
return next;
}
public T getData(){
return data;
}
}
編集:
これは私のノードクラスがどのように見えるかである私は、Nodeクラスは、自身に完全に依存して実現しています。 inner classは、それを含むクラスの本質的な部分である、定義により
class LenkeListeIterator implements Iterator<T>{
private int field = 0;
Node denne = forste;
@Override
public boolean hasNext() {
return field!= storrelse();
}
@Override
public T next() {
T data = denne.getData();
denne = denne.getNesteNode();
field++;
return data;
}
}
これらを内部クラスにすることはできません。 – khelwood
"というように、すべての異なるリストクラスに同じコードを含める必要はありません。もちろん、最上位クラスにするか、そうでなければそれらのクラスの外側でアクセス可能にしてください。 'neste'ではなく' next'を意味すると仮定すると、ここでは囲み参照を使わないので、クラスを静的にすることができます。 –