知识点
Iterable.forEach(Consumer action)是在Java 8中新增的方法,Consumer类型是函数式,所以传参时可以用Lambda表达式,同时Iterable是Collection的父接口,所以Collection及其子实现接口都可以使用此方法。
在使用forEach函数遍历集合元素时,会将元素依次传给Consumer的accept(T t)(该接口中唯一的抽象方法)方法,所以使用此函数可以非常方便的遍历集合元素。
public class CollectionEach {
public static void main(String[] args) {
// create collection
var persons = new HashSet();
persons.add("Geekmister");
persons.add("Codeflyer");
// call forEach
persons.forEach(obj -> {System.out.println("元素" + obj)});
// function body can another write
persons.forEach(obj -> {System.out.println("元素" + obj)});
}
}
扩展知识点
1、什么是Lambda表达式?
Lambda 表达式(lambda expression)是一个匿名函数,Lambda表达式基于数学中的λ演算得名,直接对应于其中的lambda抽象(lambda abstraction),是一个匿名函数,即没有函数名的函数。Lambda表达式可以表示闭包(注意和数学传统意义上的不同)。
2、什么是Consumer类型?
Java 8 中新增的函数式类型。
网友评论