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() 在開發人員中最為流行。

更新於: 2023-08-17

618 次檢視

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告