JDK8的forEach循环
- 根据Lambda表达式特性还增加了一个forEach(Consumer action)方法来遍历集合,该方法需要的参数是一个函数式接口
上代码:
package com.sgl;
import java.util.ArrayList;
public class Test {
public static void main(String[] args) {
ArrayList<Object> list = new ArrayList<>();
list.add("data1");
list.add("data2");
list.add("data3");
System.out.println(list);
//使用JDK8增加的forEach(Consumer action)方法来遍历集合
list.forEach(obj -> System.out.println("迭代集合元素:"+obj));
/*运行结果:
[data1, data2, data3]
迭代集合元素:data1
迭代集合元素:data2
迭代集合元素:data3
*/
}
}
forEach(Consumer action)方法在执行时,会自动遍历集合元素并将元素逐个传递给Lambda表达式的形参
- Iterator迭代器对象还提供了一个forEachRemaining(Consumer action)方法来进行遍历,该方法同样需要一个函数式接口
上代码:
package com.sgl;
import java.util.ArrayList;
import java.util.Iterator;
public class Test {
public static void main(String[] args) {
ArrayList<Object> list = new ArrayList<>();
list.add("data1");
list.add("data2");
list.add("data3");
System.out.println(list);
//将集合转换为Iterator迭代其对象
Iterator<Object> iterator = list.iterator();
//使用JDK8增加的forEachRemaining(Consumer action)方法来遍历集合
iterator.forEachRemaining(obj -> System.out.println("迭代集合元素:"+obj));
}
}