簡體   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