8.2.1 使用Lambda表达式遍历集合
函数式接口
所谓函数式接口就是只有一个抽象方法的接口,可以通过Lambda
表达式来创建函数式接口实例.
Iterable接口的forEach方法
Java 8
为Iterable
接口新增了一个forEach(Consumer action)
的默认
方法,这个forEach
方法所需参数的类型Consumer
是一个函数式接口
。
而Iterable
接口是Collection
接口的父接口,因此Collection
集合也可直接调用继承
得到的forEach
方法。
forEache方法
当程序调用Iterable
的forEach(Consumer action)
遍历集合元素时,程序会依次将集合元素传给Consumer
的accept(T t)
方法(accept
方法是该接口中唯一的抽象方法)。
使用Lambda表达式来遍历集合
正因为Consumer
是函数式接口,因此可以使用Lambda
表达式来遍历集合元素.
程序示例
如下程序示范了使用Lambda
表达式和匿名内部类方式来遍历集合元素。
1 | import java.util.*; |
运行效果:
1 | Lambda表达式 遍历:1 |
上面程序中调用了Iterable
的forEach
默认方法来遍历集合元素,传给该方法的参数是个Lambda
表达式,该Lambda
表达式的目标类型是Consumer
。forEach()
方法会自动将集合元素逐个地传给Lambda
表达式的形参,这样Lambda
表达式的代码体即可遍历到集合元素了.
原文链接: 8.2.1 使用Lambda表达式遍历集合