Java 中的可迭代介面是什麼?
簡單來說,可迭代介面是一個通用介面,允許我們迭代遍歷物件集合。它是在 JDK 1.5 釋出時首次引入的,並在 'java.lang' 包中可用。Java 集合框架擴充套件了此介面,因此集合框架中所有可用的類預設都實現了可迭代介面。換句話說,集合框架的類,如 ArrayList、TreeSet、TreeMap 和 HashMap 都是可迭代的。本文旨在解釋 Java 的可迭代介面及其用例。
Java 中的可迭代介面
可迭代介面唯一展示的用例是它允許迭代遍歷集合類的元素,以便我們能夠訪問這些元素。實現可迭代介面的一種方法是覆蓋 'iterator()' 方法並提供迭代器介面的具體實現。這裡,'iterator()' 方法是可迭代介面的抽象方法。本文後面將討論其他方法。但在繼續之前,讓我們先討論一些重要的語法。
可迭代介面的通用語法
public interface Iterable<TypeOfElement> { }
Iterator() 的通用語法
Iterator<TypeOfCollection> instanceOfIterator = nameOfCollection.iterator();
迭代器介面提供以下方法
hasNext() − 如果還有更多元素要迭代,則返回 true。
next() − 如果 hasNext() 返回 true,則返回迭代中的下一個元素。
remove() − 從集合中刪除當前元素。
示例
以下示例說明了如何使用可迭代介面的 iterator() 方法。
方法
首先,匯入 'java.util' 包,以便我們可以訪問 ArrayList 類。
然後,建立 ArrayList 類的例項,並使用內建方法 'add()' 將一些元素儲存到其中。
接下來,建立一個迭代器。
最後,使用一個 while 迴圈,藉助 'hasNext()' 方法迭代遍歷 ArrayList,並使用 'next()' 方法列印元素。
import java.util.*; public class ArrayObj { public static void main(String[] args) { // Creating arraylist ArrayList<Integer> araylist = new ArrayList<>(); // Adding elements in arraylist araylist.add(1); araylist.add(2); araylist.add(1); araylist.add(0); araylist.add(9); araylist.add(6); System.out.println("Elements of the list: "); // creating an iterator Iterator<Integer> iterate = araylist.iterator(); // while loop to iterate through elements while (iterate.hasNext()) { // checking next element // printing the current element System.out.println(iterate.next()); } } }
輸出
Elements of the list: 1 2 1 0 9 6
迭代遍歷可迭代的其他方法如下所示:
使用 for-each 迴圈
使用 forEach()
讓我們逐一討論它們。
使用 for-each 迴圈
如果我們使用增強型 for 迴圈,也稱為 for-each 迴圈,那麼我們只能訪問指定集合的元素。它不提供刪除元素的功能。
示例
在這個示例中,我們將使用 for-each 迴圈代替我們在前一個示例中使用的 iterator() 方法。
import java.util.*; public class ArrayObj { public static void main(String[] args) { // Creating arraylist ArrayList<Integer> araylist = new ArrayList<>(); // Adding elements in arraylist araylist.add(1); araylist.add(2); araylist.add(1); araylist.add(0); araylist.add(9); araylist.add(6); System.out.println("Elements of the list: "); // for-each loop to iterate through elements for (Integer print : araylist) { // printing the elements System.out.println(print); } } }
輸出
Elements of the list: 1 2 1 0 9 6
使用 forEach()
它是可迭代介面的預設方法,它使用 lambda 表示式來顯示結果。lambda 表示式接受單個輸入,執行指定的操作,並且不返回任何內容。它是迭代遍歷集合物件的高效方法之一。
示例
在這個示例中,我們將使用 forEach() 來代替 iterator() 方法和 for-each 迴圈來獲得所需的結果。
import java.util.*; public class ArrayObj { public static void main(String[] args) { // Creating arraylist ArrayList<Integer> araylist = new ArrayList<>(); // Adding elements in arraylist araylist.add(1); araylist.add(2); araylist.add(1); araylist.add(0); araylist.add(9); araylist.add(6); System.out.println("Elements of the list: "); // forEach to iterate through elements araylist.forEach(newArraylist -> // printing the elements System.out.println(newArraylist)); } }
輸出
Elements of the list: 1 2 1 0 9 6
結論
我們從定義可迭代介面開始本文,並在下一節中詳細討論了它。我們已經看到,總共有三種迭代遍歷可迭代物件的方法:iterator()、for-each 迴圈和 forEach()。在這些方法中,iterator() 在開發人員中最為流行。