我有自己的自定义LinkedList
类,它有一个指向列表中第一个Node
的指针。我现在需要创建一个DoublyLinkedList
类。DoublyLinkedList
和LinkedList
之间的唯一区别是DoublyLinkedList
使用DoubleNode
s而不是Node
s。我的DoubleNode
类扩展Node
类。
创建扩展LinkedList
的DoublyLinkedList
的正确的方法是什么?
必须不断地将DoubleNode
s转换为Node
s吗?还是有一种更简单的方式,我只是错过了?
谢谢你的帮助
使用泛型-将您的节点类型作为LinkedList
的参数化类型
我是自己想出来的。
事实证明,DoublyLinkedList
唯一需要更改的方法是add
方法。这是我的DoublyLinkedList
添加方法:
public void add(Object obj){
DoubleNode newNode = new DoubleNode(obj);
newNode.setPrev(getLast());
super.add((Node)newNode);
}
通过创建new
DoubleNode,然后将其转换为Node
,我能够保持大多数方法相同。如果我需要访问DoubleNode的prev
指针,我可以根据需要向下转换节点。