【发布时间】:2020-09-24 13:49:44
【问题描述】:
我正在寻找让我的矿车对象充当节点的方法,以便它们可以将自己从列表中删除,但我担心当前的代码设计会导致麻烦。
我认为这是因为不同的类型:<T extends MineCart> vs <MineCart>。
我不是在寻找如何编写 remove 方法的答案,而是寻找解决方案,以便 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;
}
}
}
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;
}
}
【问题讨论】:
-
你的问题是什么? Wagon 和 MineCart 是什么关系?
-
@Conffusion srry 这是一个错字,我已修正。我的实际问题是(简单版)我有一个 MineCart 对象--> 现在让它像节点一样工作
-
为什么你需要一个 Node 类,因为 MineCart 拥有所有信息(上一个,下一个)?
-
在 MineCart 类中调用 this.next 不起作用,nextCart 也为空;
标签: java nodes doubly-linked-list