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

问题描述

我正在寻找使我的矿车对象充当节点的方式,以便它们可以将自己从列表中删除,但是我担心当前的代码设计会造成麻烦。

我认为其原因是因为<T extends MineCart><MineCart>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; } } } 不同。

我不是在寻找有关如何编写remove方法的答案,而是在寻找解决方案,以便MineCart对象可以像一个节点一样工作。 希望获得一些有关如何解决此问题的建议。

链接列表(仅显示相关部分)

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;
    }
}

MineCart类(仅显示相关部分)

cd packageA
npm link

cd packageB
npm link packageA

// Now I have link packageB as well,so that I can use in packageC. so I did below
cd packageB
npm link

// Above command throws error saying packageA not found

解决方法

要让MineCart从列表中删除自己,请执行以下操作:

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

之前:

[cart1] - [cart2] - [cart3]

cart2.remove()

之后:

[cart1] - [cart3]  
[cart2] 

由于MineCart知道其邻居,因此您不需要Node类。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...