你好,我有一个接口;
public interface List<Type> {
void addAll(List<Type> list);
int addAll(int index, List<Type> list);
}
以及你所看到的清晰的实施;
public class DoublyLinkedList<Type> implements List<Type> {
@Override
public void addAll(List<Type> list) {
Node<Type> old = first(); //returns old linked list.Also I can call the tail node with
// tail variable.
}
@Override
public int addAll(int index, List<Type> list) {
// TODO Auto-generated method stub
return 0;
}
}
有一个构造函数类;
public class Node<Type> {
protected Type data;
protected Node<Type> next;
protected Node<Type> previous;
public Node(Type data, Node<Type> next,Node<Type> previous) {
this.data = data;
this.next = next;
this.previous = previous;
}
public Type getData() {
return data;
}
public Node<Type> getNext() {
return next;
}
public Node<Type> getPrevious() {
return previous;
}
}
我没有把我所有的方法都放在上面。因为我的项目,所以我的问题是如何实现这些方法?我想在旧的链表之后通过接口添加一个新的链表。
1条答案
按热度按时间flmtquvp1#
可能有不同的方法来实现您的需求。下面是我的实现。注意我改了名字。我给接口命名了
Listing
以免与…发生冲突java.util.List
. 类型参数的约定也是一个大写字母,所以我改了Type
至T
. 我换了班Node
至ListNode
因为已经有很多Node
班级。我还添加了一个toString()
方法到类ListNode
还有上课DoublyLinkedList
作为测试辅助。我还添加了方法main()
上课DoublyLinkedList
使测试实现成为可能。最后,我添加了方法add()
上课DoublyLinkedList
使创建非空列表成为可能。解释下面的代码是如何工作的需要大量的文本,可能还需要一些图表。与其这样做,我建议您只需在调试器中运行代码。大多数ide都有一个调试器。
接口
Listing
```public interface Listing {
}
班级
DoublyLinkedList
```public class DoublyLinkedList implements Listing {
private ListNode head;
}