繁体   English   中英

实现通用链表添加方法Java

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM