Java 我需要创建自己的简单LinkedList

Java 我需要创建自己的简单LinkedList,java,linked-list,Java,Linked List,我不知道如何将许多组件添加到我的列表中以及如何解决它们 public class Element { public Object object; public int index; public Element(Object object){ this.object = object; } } public class LinkedList { private Element element; private int nextLi

我不知道如何将许多组件添加到我的
列表中以及如何解决它们

public class Element {
    public Object object;
    public int index;
    public Element(Object object){
        this.object = object;
    }
}

public class LinkedList {
    private Element element;
    private int nextLink = 0;
    private int prevLink;
    private int index;


    public void add(Object newElement) {
        nextLink++;
        prevLink++;
        this.index = nextLink - prevLink;
        if (nextLink == 0) {
            prevLink=0;
            this.index = 0;
        }
        else {
            prevLink++;
            this.index = nextLink - prevLink;}
            nextLink++;
            System.out.println(element);
            Element element = new Element(newElement);
            this.element = element;
            if (nextLink == 0) {
                prevLink=0;
                this.index = 0;
            }
            else {
                prevLink++;
                this.index = nextLink - prevLink;}
                nextLink++;
                System.out.println(element);
            }

        public void get(int index) {        
        }
        public void remove(int index) { 
        }
    }


    public class Main {
        public static void main(String[] args) {
            LinkedList linked = new LinkedList();
            linked.add("234");
            linked.add("255");
            linked.add("1");
            System.out.println(linked);
            linked.get(1);
        }
    }

我有一个大问题,因为我的列表上只有一个元素,当我想添加新元素时,我的旧元素会被重写。我不知道如何更正此问题:((

通常在链接列表中,元素包含对列表中下一个元素的引用。您的
元素
类似乎无法引用列表中的下一个元素


链接列表上的维基百科条目可能是一个很好的起点:

每个元素都必须包含指向下一个元素的链接。索引是不必要的,而且会产生反作用

首先将元素类重写为:

public class Element {
    public Object object;
    public Element next;
    public Element(Object object){
    this.object = object;
    }
}

我建议创建类似的内容。您需要对下一个元素的引用。如下面的代码所示


E是泛型类型。它允许您创建列表节点,如代码
Listnode l;
中所示。泛型的好处是您可以同样轻松地创建整数的Listnode。如下所示。
Listnode integerList;

public class Listnode<E> {
          //*** fields ***
            private E data;
            private Listnode<E> next;

      //*** constructors **/
    // 2 constructors
    public Listnode(E d) {
        this(d, null);
    }

    public Listnode(E d, Listnode n) {
        data = d;
        next = n;
    }

  //*** methods ***
    // access to fields
    public E getData() {
        return data;
    }

    public Listnode<E> getNext() {
        return next;
    }

    // modify fields
    public void setData(E d) {
        data = d;
    }

    public void setNext(Listnode<E> n) {
        next = n;
    }
}
公共类Listnode{
//***田地***
私人电子数据;
私有listnodenext;
//***建设者**/
//2名施工人员
公共列表节点(ED){
这(d,null);
}
公共Listnode(ED,Listnode n){
数据=d;
next=n;
}
//***方法***
//访问字段
公共E getData(){
返回数据;
}
公共Listnode getNext(){
下一步返回;
}
//修改字段
公共无效设置数据(ED){
数据=d;
}
public void setNext(Listnode){
next=n;
}
}
这样做是为了真正实现这一切

现在,此代码创建了一个新节点。此节点称为“l”,l指向一个“节点”,该节点将值“ant”作为字符串保存。您现在还可以看到下一个值为null,如“\”所示

您还可以随意设置/更改值


元素应保留对列表中下一个元素的引用。.阅读LinkedList的源代码如果你想知道它是如何工作的,你不能只使用System.out.println(linked);并期望它输出你的列表。你必须使用LinkedList.get()迭代你的所有列表项(你还必须实现这个函数)谢谢。如果你能告诉我如何打印我的元素,我将非常感激,因为我只有这样的元素Element@d1c9b5linksI试图这样做,但没有成功..:(字符串值=(字符串)列表;这是因为这是内存地址。你需要让你的元素类能够获取数据。我推荐一些如我的代码中所示的东西。我很高兴向你解释。我包括了概念图片谢谢,但现在我正在学习这门课程,我们的老师没有解释这是什么。我们只能使用我们已经使用的东西赚得:(E是一种泛型类型。它允许您创建代码Listnode l中所示的列表节点;泛型的好处是您可以同样轻松地创建一个整数Listnode。就像这样。Listnode integerList;@user3369372这是否澄清了?不要害怕,非常感谢您的解释。我认为我理解,但我不是苏re:))泛型允许您在Listnode中使用任何基元类型