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


Java Iterable forEach()用法及代碼示例


自Java 8發布以來已經有一段時間了。在此版本中,他們改進了一些現有的API,並增加了一些新函數。其中之一是java.lang.Iterable接口中的forEach方法。

每當我們需要遍曆一個集合時,我們都必須創建一個Iterator來迭代該集合,然後我們可以將業務邏輯包含在該集合中每個元素的循環中。如果未正確實現,我們可能會遇到ConcurrentModificationException。

Iterable接口中forEach方法的實現是:


default void forEach(Consumer action) {
        Objects.requireNonNull(action);
        for (T t : this) {
            action.accept(t);
        }
    }

參數:此方法采取類型為java.util.function.Consumer的參數操作,該參數操作表示要對每個元素執行的操作。

返回值:forEach的返回類型為void。因此,它不返回任何內容。

異常:如果輸入操作為null,則拋出NullPointerException。

示例1:程序使用迭代器迭代String列表。

// Java program to demonstrate 
// forEach() method of Iterable interface 
  
import java.util.ArrayList; 
import java.util.Iterator; 
import java.util.List; 
import java.util.function.Consumer; 
  
public class ForEachExample { 
  
    public static void main(String[] args) 
    { 
        List<String> data = new ArrayList<>(); 
        data.add("New Delhi"); 
        data.add("New York"); 
        data.add("Mumbai"); 
        data.add("London"); 
  
        Iterator<String> itr = data.iterator(); 
        while (itr.hasNext()) { 
  
            System.out.println(itr.next()); 
            // data.remove(itr.next()); 
            // this line can introduce you to 
            // java.util.ConcurrentModificationException. 
        } 
    } 
}
輸出:
New Delhi
New York
Mumbai
London

示例2:用於在包含城市列表的列表上演示forEach()方法的程序。

// Java program to demonstrate 
// forEach() method of Iterable interface 
  
import java.util.ArrayList; 
import java.util.List; 
import java.util.function.Consumer; 
  
public class ForEachExample { 
  
    public static void main(String[] args) 
    { 
        List<String> data = new ArrayList<>(); 
        data.add("New Delhi"); 
        data.add("New York"); 
        data.add("Mumbai"); 
        data.add("London"); 
  
        data.forEach(new Consumer<String>() { 
  
            @Override
            public void accept(String t) 
            { 
  
                System.out.println(t); 
            } 
  
        }); 
    } 
}
輸出:
New Delhi
New York
Mumbai
London

在上麵的程序中,我們創建了一個包含4個元素的字符串列表,然後使用forEach方法遍曆該列表。如前所述,forEach方法將Consumer對象作為輸入,我們創建了Consumer接口的匿名內部類實現,並覆蓋了accept方法。在此示例中,我們將業務邏輯保留在匿名內部類內,並且我們無法重用它。

示例3:在此程序中,我們將分別演示Consumer接口的實現,以便我們可以重用它。讓我們創建一個CityConsumer類,該類實現Consumer接口並覆蓋其accept方法。

// Java program to demonstrate 
// forEach() method of Iterable interface 
  
import java.util.*; 
import java.util.function.Consumer; 
  
class CityConsumer implements Consumer<String> { 
  
    @Override
    public void accept(String t) 
    { 
        System.out.println(t); 
    } 
} 
  
// Now we can use the CityConsumer 
// with forEach method by just creating 
// an object of CityConsumer class as below. 
  
public class ForEachExample { 
  
    public static void main(String[] args) 
    { 
        List<String> data = new ArrayList<>(); 
        data.add("New Delhi"); 
        data.add("New York"); 
        data.add("Mumbai"); 
        data.add("London"); 
  
        // create an object of CityConsumer 
        // and pass it to forEach method 
        CityConsumer cityConsumer = new CityConsumer(); 
        data.forEach(cityConsumer); 
    } 
}
輸出:
New Delhi
New York
Mumbai
London

參考: https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html



相關用法


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