Java 中的迭代器實現指南
已發表: 2020-06-11在 Java 中,有一個實用程序用於從系列中生成連續元素,稱為java 迭代器。 由所有集合類實現,Java 中的這些迭代器實現返回一個對象,然後觸發接口。 由於 Java 集合框架由在可重用數據集上運行的類組合組成,因此通過此類迭代器接口返回的對象可以跨越集合中的所有元素。
在執行之前,您需要牢記 Java 迭代器的一些特定特徵:
- Java 中的集合框架配備了 iterator () 函數,可以幫助執行 READ 和 REMOVE 命令。
- 與其他迭代器不同,迭代方法使用 next() 函數在自動循環中移動元素。
- 每個迭代器只能遍歷所有元素一次,一旦到達序列的末尾,就該獲取另一個迭代器了。
閱讀: Java 如此受開發人員歡迎的 6 大原因
目錄
在 Java代碼中執行迭代器實現
由於每個框架都帶有一個返回的對象,因此可以使用此類方法以下列方式訪問元素:
- 調用 iterator() 方法。
- 創建一個可以調用 boolean hasNext() 的循環,該循環返回一個布爾變量。 一旦變量具有實際值,它就允許迭代器遍歷集合。
- 調用 E next() 函數以獲取集合中的下一個元素。
- 默認的 void remove() 可用於刪除通過迭代器返回的最後一個元素的底層集合。
- 默認的 void forEachRemaining() 函數幫助迭代器在每個元素上執行任何給定的函數,直到整個集合完成處理。
在 java 中的迭代器實現中使用 hasNext() 和 Next() 函數
正如我們已經知道的,next() 函數幫助迭代器一次遍歷所有集合元素; 因此,一旦迭代器到達集合的末尾,next() 就會引發異常。 這就是為什麼在 next() 之前使用 haveext() 函數可以確保迭代器具有與集合一致的下一個對象,以消除任何異常。
Object remove():在 object remove() 函數的幫助下,您可以刪除並返回最後一個被迭代器遍歷並由 next() 返回的對象。 如果對象自上次訪問後發生任何修改,則函數 IllegalStateException() 將生效。

這是函數如何發生的一個簡單示例:
ArrayList abc = new ArrayList();
迭代器 xyz = xyz.iterator();
xyz.next();
xyz.刪除;
xyz.remove();
xyz.next();
xyz.remove();
導入 java.util.*;
類迭代器Trial
{
公共靜態無效主要(字符串[] arg)

}
List trialList = new ArrayList();
String trialArray[] = {“Harry”, “Jack”, “Jacob”, “Maggie”, “George”};
for (int i=0; i<trialArray.length; i++)
{
trialList.add(trialArray[i]);
}
迭代器 xyz = trialList.iterator();
而 (xyz.hasNext())
{
System.out.println(xyz.next());
}}}
上述代碼生成的輸出為:
哈利
傑克
雅各布
劣質煤
喬治
在上面的示例中,為 ArrayList abc 創建了迭代器 xyz,該迭代器一旦刪除了第一個元素和相鄰的對象,就會執行快速簡單的迭代。
另請閱讀:初學者的 17 個有趣的 Java 項目想法和主題
Java中的自定義類迭代器實現
對於任何用戶定義的自定義類,您可以使用以下方法迭代元素:

- 設置和定義自定義類。
- 將集合類分配和定義給自定義類。
- 在這個集合類中,需要以自定義類作為類型參數來實現可迭代接口。
- 同一個集合類應該能夠執行一個iterator() 函數。
- 一旦在 Custom 類中遵循這些說明,就可以為其元素運行迭代器對像或增強型 For Loop()。
Java中迭代器實現的優缺點
- 適用於任何 Collection 類
- Collection API 的通用游標,具有安全的方法和操作
缺點:
- 不支持 CREATE 和 UPDATE 操作
- 迭代只發生在一個方向
- ListIterator 和 Spliterator 是 Java 中更好的游標,允許並行迭代和批量數據迭代。
Java中的枚舉和迭代器實現:異同
- 枚舉器和迭代器都是 java 游標,可用於在單個方向上一次一個地迭代集合類元素。
- 兩個游標都支持 READ 方法。
不同點:
- 枚舉是一個遺留接口,首先在 Java 1.0 中執行,並且僅限於 Legacy 集合類,與 Iterator 不同。
- 枚舉器不是通用游標,因此具有棘手的函數名稱,僅限於執行 READ 函數。
另請閱讀:印度的 Java 開發人員薪水:適合新人和有經驗的人
結論
伙計們,這就是Java中的迭代器實現! 希望您現在知道如何以正確的方式開始迭代。
如果您有興趣了解有關全棧軟件開發的更多信息,請查看 upGrad 和 IIIT-B 的全棧軟件開發 PG 文憑,該文憑專為在職專業人士設計,提供 500 多個小時的嚴格培訓、9 個以上的項目,以及任務、IIIT-B 校友身份、實用的實踐頂點項目和頂級公司的工作協助。