我正在处理一个问题,我实现了不同的链接列表。所有的列表类都包含两个内部类;一个Node类和一个Iterator类。如何在不同的List类中使用相同的内部类?
这些内部类彼此完全相同。在Iterator类中,一些方法依赖于从外部类访问信息,这很好。有没有办法在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;
}
}
编辑:我意识到节点类本身完全依赖。
这里是我的简单的迭代器:
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
“,这样我就不需要在我所有不同的列表类中包含非常相同的代码”当然,使它成为顶级类,或者在其他类之外访问。假设你的意思是'next'而不是'neste',那么你不用在这里使用封闭引用,所以你可以让这个类变为静态的。 –