繁体   English   中英

链表迭代器Java

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM