[英]Linked List Iterator Java
我目前正在研究链表和迭代器( 使用Lafore的 )。
我不确定为什么首先需要迭代器。
说您的课程链接如下所示。
class Link{
public int iData; // data
public double dData; /d/ data
public Link next; //reference to next link
//----------------------------------
public Link(int id, double dd){
iData = id; //initialize data
dData = dd;// 'next' is automatically set to null.
}
//----------------------------------
public void displayLink(){
System.out.print("{"+iData+", "+dData+"} ");
}
//----------------------------------
}//end class Link
并且您的LinkList类具有一个“ 首先链接”字段和该列表的一些操作。
我的问题是
为什么我不能仅将一个int变量(例如: int count; )添加为Link类的字段,然后在每次调用它时都将其递增,而不是构建一个称为Iterators的整个类,而只是在该类中来回遍历清单?
这本书说
这种方法的一个问题是,您可能需要多个这样的引用,就像您经常同时使用多个数组索引一样。
这是什么意思? 您能举个例子说明这个问题何时发生吗?
先感谢您。
如果在Link
添加一个count
字段,则如果在中间的某个位置插入一个元素,则必须在所有后续元素中更新.count
字段。 那将使插入操作效率低下。
Link.count
字段有什么用? 我没有看到通常有用的目的。
迭代器很不错,但是实际上不需要一个迭代器。 如果要遍历链接列表,则可以不用它。 因此,我真的没有看到您反对链表上的迭代器。
迭代器非常有用,因为它们封装了迭代的概念。 迭代器的唯一职责是对一些可迭代的对象进行迭代。 您可以遍历元素,而无需了解有关基础存储的任何知识。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.