Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用节点的自定义链表_Java_List - Fatal编程技术网

Java 使用节点的自定义链表

Java 使用节点的自定义链表,java,list,Java,List,我很难使用链表/节点,我基本上只能使用节点在Java中创建自己的链表 这就是我要做的: 这就是我目前的情况: public class index { public static void main(String[] args) { //Front = start of list nameNode head = null; //head = add(head,"Bob"); //head.next = add(head,"Cat"); //hea

我很难使用链表/节点,我基本上只能使用节点在Java中创建自己的链表

这就是我要做的:

这就是我目前的情况:

public class index {

public static void main(String[] args) {
    //Front = start of list
    nameNode head = null; 


    //head = add(head,"Bob");
    //head.next = add(head,"Cat"); 
    //head.next.next = add(head, "Dog"); 

    nameNode cNode = new nameNode("C", null); 
    nameNode bNode = new nameNode("B",cNode);
    nameNode aNode = new nameNode("A",bNode);


    System.out.println(aNode.next); 


}

// This adds nodes to front of list
public static nameNode add(nameNode head, String movie)
{
    nameNode temp = new nameNode(movie, null); 
    temp.next = head; 
    return temp; 
}

//Private node class that creates new nodes 
private static class nameNode {

    public String data;

    public nameNode next; 

    public nameNode(String data, nameNode next){
        this.data = data; 
        this.next = next; 
    }

    public String toString(){
        return data + ""; 
    }
  }
}
那么,我应该如何通过节点创建一个顶部列表和底部子列表呢。所以我的想法是基本上为B创建一个节点,然后将Ben和Bob链接在一起,哪个链接到B,然后将B链接到D,依此类推

我也在玩节点,我认为我现在制作它们的方式是正确的?有没有其他方法可以自动创建对象,而不是我自己创建对象


我想能够做的是使用add方法基本上创建一个新节点……但我不知道如何真正做到这一点,关于如何做到这一点的任何提示?

请查找
LinkedList的实现

我在图形表示中注意到的是,每个节点都指向数据,以及下一个节点

但是您的
nameNode
类只有下一个指针。您可能必须使用
LinkedList
类中使用的另一个引用


还可以尝试使用泛型,以便您可以放置任何数据。

检查Java的LinkedList实现谢谢您的回复,您能告诉我如何执行/查看此操作吗?我是java的新手,我还不能100%确定如何使用javadoc:这个图实际上看起来更像一个地图而不是一个列表。或者一张清单,你到底想做什么?单链表,列表列表,还是什么?如果是单链表,为什么图表显示从主列表分支出来的子列表?因为你有子列表,你想要的是一个列表列表,对吗?我认为列表列表在这里不是正确的实现,他正在从头开始创建一个链表实现,因此,他需要创建自己的链表节点。他需要“字母”列表节点来维护两个指针,一个指向下一个“字母”节点,另一个指向子列表中的第一个“名称”节点。“名称”节点应保持指向子列表中下一个“名称”节点的单个指针。在这一点上,请特别注意如何命名节点类,以确保传达每个节点的实际功能。。。在双链接列表中,一个点指向上一个点,另一个点指向下一个点。类似地,您也可以有两个以上的指针:)您所说的“每个节点都指向数据以及下一个节点”是什么意思?
public class index {

public static void main(String[] args) {
    //Front = start of list
    nameNode head = null; 


    //head = add(head,"Bob");
    //head.next = add(head,"Cat"); 
    //head.next.next = add(head, "Dog"); 

    nameNode cNode = new nameNode("C", null); 
    nameNode bNode = new nameNode("B",cNode);
    nameNode aNode = new nameNode("A",bNode);


    System.out.println(aNode.next); 


}

// This adds nodes to front of list
public static nameNode add(nameNode head, String movie)
{
    nameNode temp = new nameNode(movie, null); 
    temp.next = head; 
    return temp; 
}

//Private node class that creates new nodes 
private static class nameNode {

    public String data;

    public nameNode next; 

    public nameNode(String data, nameNode next){
        this.data = data; 
        this.next = next; 
    }

    public String toString(){
        return data + ""; 
    }
  }
}