當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Java Iterable用法及代碼示例


可迭代JDK 1.5 中引入了接口。它屬於java.lang包。一般來說,實現 Iterable 的對象允許它被迭代。可迭代接口允許對象成為增強的for循環(for-each 循環)。

可迭代的定義

public interface Iterable<T>
{
  Iterator<T>    iterator();
  
  Spliterator<T> spliterator();

  void           forEach(Consumer<? super T> action);
}

這裏,T是迭代器返回的元素的類型。

迭代的方式

Iterable 對象可以通過三種方式進行迭代。

  1. 使用enhanced for loop(for-each循環)
  2. 使用 Iterable forEach 循環
  3. 使用迭代器<T>接口

使用增強的 for 循環迭代 Iterable

實現 Collection 接口的類的對象可以使用 for-each 循環進行迭代,Collection 接口擴展了 Iterable 接口。

Java


// Java Program to demonstrate iterate  
// an iterable using for-each loop 
  
import java.io.*; 
import java.util.*; 
  
class IterateUsingEnhancedForLoop { 
    public static void main (String[] args) { 
          
      // create a list 
      List<String> list = new ArrayList<String>(); 
  
      // add elements 
      list.add("Geeks"); 
      list.add("for"); 
      list.add("Geeks"); 
  
      // Iterate through the list 
      for( String element : list ){ 
          System.out.println( element ); 
      } 
    } 
} 
輸出
Geeks
for
Geeks

使用 forEach 循環迭代 Iterable

Iterable forEach()方法采用拉姆達表達式作為參數。集合中的每個元素都會調用此 Lambda 表達式。在下麵的示例中,對於每個元素對於列表,該函數將元素打印到控製台。

Java


// Java Program to demonstrate iterate 
// an Iterable using forEach method 
  
import java.io.*; 
import java.util.*; 
  
class IterateUsingforEach { 
    public static void main(String[] args) 
    { 
          // create a list 
        List<String> list = new ArrayList<>(); 
  
          // add elements to the list 
        list.add("Geeks"); 
        list.add("for"); 
        list.add("Geeks"); 
  
          // Iterate through the list 
        list.forEach( 
            (element) -> { System.out.println(element); }); 
    } 
}
輸出
Geeks
for
Geeks

使用 Iterator 迭代 Iterable

我們可以通過使用 iterator() 方法從中獲取 Iterator 來迭代 Java Iterable 的元素。

使用 Iterator 遍曆集合來執行操作時使用的方法是:

  • hasNext():如果到達集合末尾,則返回 false,否則返回 true。
  • next():返回集合中的下一個元素。
  • remove():從集合中刪除迭代器返回的最後一個元素。
  • forEachRemaining():按順序對集合中的每個剩餘元素執行給定操作。

Java


// Java Program to demonstrate iterate 
// an Iterable using an Iterator 
  
import java.io.*; 
import java.util.*; 
  
class IterateUsingIterator { 
    public static void main(String[] args) 
    { 
        List<String> list = new ArrayList<>(); 
  
        list.add("Geeks"); 
        list.add("for"); 
        list.add("Geeks"); 
  
        Iterator<String> iterator = list.iterator(); 
  
        while (iterator.hasNext()) { 
            String element = iterator.next(); 
            System.out.println(element); 
        } 
    } 
}
輸出
Geeks
for
Geeks

可迭代的方法

METHOD

DESCRIPTION

Iterable forEach() 對 Iterable 的每個元素執行給定的操作,直到處理完所有元素或該操作引發異常。
iterator() 返回 T 類型元素的迭代器。
spliterator() 在此 Iterable 說明的元素上創建 Spliterator

必讀

參考:https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Iterable.html



相關用法


注:本文由純淨天空篩選整理自Ganeshchowdharysadanala大神的英文原創作品 Iterable Interface in Java。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。