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方法演示实例

  •  通过遍历打印集合元素比较 新旧方式的使用区别
    
  • </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方法的参数执行;
直到每个元素都处理完毕或者抛出异常即终止行为;
除非指定了消费行为action 的实现,否则默认情况下是按迭代里面的元素顺序依次处理。

自定义消费行为动作Consumer action

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

需要了解的几个新的API 接口以及方法

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容