forEach方法遍歷集合

舊API、新的forEach API進行遍歷打印集合中的元素對比
下面比較使用舊API、新的forEach API進行遍歷打印集合中的元素:

舊API需要獲取集合的Iterator迭代器實例來進行遍歷;
新的API結合lambda表達式使用一行代碼即可:myList.forEach(s -> {System.out.println("Iterator Value::"+s);});

package com.spring.lambda;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
/**

  • <pre>

  • Java8 的 forEach方法演示實例

  •  通過遍歷打印集合元素比較 新舊方式的使用區(qū)別
    
  • </pre>
    */
    public class ForEachDemo {
    public static void main(String[] args) {
    List<Integer> myList = new ArrayList<Integer>();
    for(int i=0; i<3; i++) myList.add(i);

             System.out.println("<<<<<<<<Java8之前迭代方式start...>>>>>>>");
             Iterator<Integer> it = myList.iterator();
             while(it.hasNext()){
                 Integer i = it.next();
                 System.out.println("Iterator Value::"+i);
             }
    
             System.out.println("<<<<<<<<Java8之前迭代方式end.>>>>>>>");
             System.out.println("<<<<<<<<Java8使用forEach新迭代方式start...>>>>>>>");
             myList.forEach(s -> {System.out.println("Iterator Value::"+s);});
             System.out.println("<<<<<<<<Java8使用forEach新迭代方式end.>>>>>>>");
    

    }
    }

兩種方式得到的是一樣的結果:
<<<<<<<<Java8之前迭代方式start...>>>>>>>
Iterator Value::0
Iterator Value::1
Iterator Value::2
<<<<<<<<Java8之前迭代方式end.>>>>>>>
<<<<<<<<Java8使用forEach新迭代方式start...>>>>>>>
Iterator Value::0
Iterator Value::1
Iterator Value::2
<<<<<<<<Java8使用forEach新迭代方式end.>>>>>>>

JAVA8中forEach方法的詳解
forEach方法是JAVA8中在集合父接口java.lang.Iterable中新增的一個default實現方法:
default void forEach(Consumer<? super T> action) {
Objects.requireNonNull(action);
for (T t : this) {
action.accept(t);
}
}

forEach方法接受一個在JAVA8中新增的java.util.function.Consumer的消費行為 或者稱之為動作 (Consumer action )類型;
然后將集合中的每個元素作為消費行為的accept方法的參數執(zhí)行;
直到每個元素都處理完畢或者拋出異常即終止行為;
除非指定了消費行為action 的實現,否則默認情況下是按迭代里面的元素順序依次處理。

自定義消費行為動作Consumer action

首先,需要實現java.util.function.Consumer接口;
再次,實現其accept方法

需要了解的幾個新的API 接口以及方法

java.lang.Iterable#forEach
java.util.function.Consumer#accept

?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容