Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/70.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
LinkedList java迭代器。下一个概念?_Java_Linked List - Fatal编程技术网

LinkedList java迭代器。下一个概念?

LinkedList java迭代器。下一个概念?,java,linked-list,Java,Linked List,我对LinkedList的概念有疑问。我不知道迭代器.next如何存储下一个节点的引用 这是节点类 public class Node { int data; Node next; Node(int data) { this.data= data; } } 这是LinkedList类 public class LL { public static void main(String[] args) { Node sta

我对LinkedList的概念有疑问。我不知道
迭代器.next
如何存储下一个节点的引用 这是节点类

public class Node {
    int data;
    Node next;

    Node(int data) {
        this.data= data;
    }
}
这是LinkedList类

public class LL {

    public static void main(String[] args) {

        Node start = new Node(0);

            Node iterator =start;

            for(int i =1; i <5 ;i++) {
                iterator  =iterator.next = new Node(i);
            }

                    for(iterator = start ; iterator != null;  iterator = iterator .next){
                    System.out.println(iterator .data);
                    }
        }
    }
公共类LL{
公共静态void main(字符串[]args){
节点开始=新节点(0);
节点迭代器=开始;

对于(int i=1;i,您的示例中的节点结构看起来是这样的:

class Node {
    Object item; // some kind of value
    Node next; // reference to some other node
}
因此,节点类型的每个引用都可以保存对节点类型的另一个对象的引用,可以保存对节点类型的另一个对象的引用,…创建一个类似于链表的结构

您的代码以我上面描述的方式通过该结构:

  • 我们有一个对Node类型的对象的引用,称为
    iterator
  • 只要迭代器引用不是null
    • 我们在当前节点,
      iterator.item
    • 我们让迭代器指向下一个节点引用,
      iterator=iterator.next

通常最好以直观的方式思考数据结构。例如,下面是一个包含3个节点的链表:

[A] ->[B]->[C]

在节点上调用next()只是返回列表中的下一个节点

例如在伪代码中 A.next()==B 和 B.下一步()==C

您可以在此处阅读有关LinkedList的更多信息并查看更多图片:

迭代器。next
是对节点的引用,它没有其他用途。这是值存储的内容。您有什么疑问?next的用途是什么?next对于所有迭代都是相同的,那么为什么引用被更改为迭代器=项。next;正在执行。?请尝试正确拼写您的问题。您没有帮助正在阅读的人g它们。@cuteprogrammer“下一步对于所有迭代都是相同的”你为什么这么认为?你的代码只是在节点间迭代。为了前进到下一个节点并打印它,
iterator
的引用必须更改为
next
节点。例如,如果你有节点1到4,节点1的
next
将引用节点2。节点2的
next
将包含对n的引用ode 3等。阅读一些关于链表的教程/文档,你会受益匪浅。