公开节点类并在另一个类中保留对它的引用



我正在寻找一种方法,让我的minecart对象充当一个节点,这样它们就可以从列表中删除自己,但我担心当前的代码设计会给允许这样做带来麻烦。

我认为这是因为不同的类型:<T extends MineCart><MineCart>

我不是在寻找如何编写remove方法的答案,而是在寻找一个解决方案,以便MineArt对象可以像节点一样工作。如果能就如何解决这个问题得到一些建议,我将不胜感激。

链接列表(只显示相关部分(

public class MyCustomLinkedList<T extends MineCart> implements Iterable<T> {
//... your typical list methods (e.g. add/remove etc)
public static class Node<T> {
private T item;
private Node<T> prev, next;
public Node(T item, Node<T> prev, Node<T> next) {
this.item = item;
this.prev = prev;
this.next = next;
}
}
}

MineArt类(仅显示相关部分(

public abstract class MineCart implements Comparable<MineCart> {
public MineCart nextCart; 
public MineCart prevCart;
public MineCart getNextMineCart() {
// and then do something like this:
// return this.next;
// or return nextCart;
}
}

让MineArt从列表中删除自己:

public abstract class MineCart implements Comparable<MineCart> {
public void remove() {
prevCart.nextCart=nextCart;
}
}

之前:

[cart1] - [cart2] - [cart3]

cart2.remove((

之后:

[cart1] - [cart3]  
[cart2] 

由于MineArt知道它的邻居,所以您不需要Node类。

最新更新