LinkedList java迭代器。下一个概念?
我对LinkedList的概念有疑问。我不知道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
迭代器.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等。阅读一些关于链表的教程/文档,你会受益匪浅。