forEach与jdk8中的lambda, Stream

Posted yszzu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了forEach与jdk8中的lambda, Stream相关的知识,希望对你有一定的参考价值。

 

 

增强for循环 :forEach

技术分享图片

反编译后可以看到实际使用的仍然是Iterator+while遍历的

forEach的优点是写法简单,缺点是不能使用xxx.remove(e)或者iter.remove(), 如果有删除的需要,还是老老实实用Iterator

 

  对于数组的遍历,使用的是length遍历

参考:

https://stackoverflow.com/questions/85190/how-does-the-java-for-each-loop-work

https://docs.oracle.com/javase/specs/jls/se8/html/jls-14.html#jls-14.14.2

 

 

 

 

lambda的forEach,注意不能使用break, continue,  而reture相当于普通遍历中的continue。也就是没有普通遍历中的break和return的功能。 

jdk8中Map也有forEach 了, 它是遍历keyEntry

Stream中的forEach ...

 

以上是关于forEach与jdk8中的lambda, Stream的主要内容,如果未能解决你的问题,请参考以下文章

java lambda 的用法

JDK8系列之Lambda表达式教程和示例

JDK8新特性04 方法引用与构造器引用

jdk8中的lambda表达式

jdk8中的lambda表达式

JDK8中的 Lambda 表达式