[英]Implementing generic linkedlist add method java
我正在尝试为链表实现add方法,它应该采用任何数据类型,但是我有点迷失且无法正常工作,将不胜感激。
public class LinkedList <T>extends AbstractList {
private class Node {
T data;
Node next;
Node(T data, Node next) {
this.data = data;
this.next = next;
}
Node(T data) {
this(data, null);
}
}
Node first;
Node last;
public LinkedList() {
first = null;
last = null;
}
@Override
public boolean add(T item) {
Node newNode = new Node((T)item);
if (isEmpty()) {
first = newNode;
last = first;
return true;
}
last.next = newNode;
last = null;
return true;
}
}
您没有告诉我们您的具体问题,所以我们无法解决,只能猜测。
我看到的一个问题是,您将AbstractList
扩展为原始(非泛型)类型-您的声明应改为
public class LinkedList<T> extends AbstractList<T> { ... }
你需要:
last.next = newNode;
last = newNode;
小心您明白原因。
在添加新节点之前, last
是对列表中最后一个条目的引用。
您要做的是将其 next
引用指向此新节点。
然后,第二行更新last
引用这个新太。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.