Java8 lamda表达式快速上手
1.对比着经典foreach
简单的循环
o相当于foreach中的临时变量,要遍历的list放在句首
list.foreach(o->{你要进行的操作});
package com.company; import com.entity.Goods; import java.util.ArrayList;
import java.util.List; public class Main {
public static void main(String[] args) {
List<Goods> list = new ArrayList<Goods>();
Goods goods1 = new Goods(,"健力宝");
Goods goods2 = new Goods(,"伟哥");
list.add(goods1);
list.add(goods2); for(Goods o: list) { // 外部迭代
System.out.println(o);
}
System.out.println("=============lambda表达式=============");
list.forEach(o -> {System.out.println(o);}); }
}
2.foreach里面的if功能,即list.stream().filter().foreach()
public List<Photo> buildPhoto() {
List<Photo> target = new ArrayList<>();
if (!photoList.isEmpty()) {
// 根元素
photoList.stream().filter(photo -> photo.getParentId() == 0).forEach(photo -> { // 根元素
List<Photo> children = getChildren(photo);
photo.setChildren(children);
target.add(photo);
});
// 相当于经典foreach的如下代码
for (Photo photo:photoList){
if (photo.getParentId() == 0){
List<Photo> children = getChildren(photo);
photo.setChildren(children);
target.add(photo);
}
}
}
return target;
}
如果想深究其原理 参考http://www.cnblogs.com/aoeiuv/p/5911692.html
Java8 lamda表达式快速上手的更多相关文章
- java8 lamda 表达式
- [.net 面向对象程序设计进阶] (6) Lamda表达式(二) 表达式树快速入门
[.net 面向对象程序设计进阶] (6) Lamda表达式(二) 表达式树快速入门 本节导读: 认识表达式树(Expression Tree),学习使用Lambda创建表达式树,解析表达式树. 学习 ...
- java8的新特性详解-----------Lamda表达式
java8最大的亮点就是引入了Lamda表达式 , 函数式编程的概念 具体啥意思我也不知道.只管用就行了,非常的强大,简洁,一个表达式相当于以前的十几行代码 因为之前要实现这种效果全靠if el ...
- JAVA8新特性——Lamda表达式
JAVA9都要出来了,JAVA8新特性都没搞清楚,是不是有点掉队哦~ Lamda表达式,读作λ表达式,它实质属于函数式编程的概念,要理解函数式编程的产生目的,就要先理解匿名内部类. 先来看看传统的匿名 ...
- Objective-C快速上手
最近在开发iOS程序,这篇博文的内容是刚学习Objective-C时做的笔记,力图达到用最短的时间了解OC并使用OC.Objective-C是OS X 和 iOS平台上面的主要编程语言,它是C语言的超 ...
- [.net 面向对象程序设计进阶] (7) Lamda表达式(三) 表达式树高级应用
[.net 面向对象程序设计进阶] (7) Lamda表达式(三) 表达式树高级应用 本节导读:讨论了表达式树的定义和解析之后,我们知道了表达式树就是并非可执行代码,而是将表达式对象化后的数据结构.是 ...
- 快速上手如何使用FluentData
http://blog.itpub.net/29511780/viewspace-1194048/ 目录: 一.什么是ORM? 二.使用ORM的优势 三.使用ORM的缺点 四.NET下的ORM框架有 ...
- knockoutJS 快速上手
翻译:Knockout 快速上手 - 3: knockoutJS 快速上手 许多时候,学会一种技术的有效方式就是使用它解决实际中的问题.在这一节,我们将学习使用 Knockout 来创建一个常见的应用 ...
- Java 程序员快速上手 Kotlin 11 招
欢迎大家关注腾讯云技术社区-博客园官方主页,我们将持续在博客园为大家推荐技术精品文章哦~ 作者:霍丙乾 近经常会收到一些 "用 Kotlin 怎么写" 的问题,作为有经验的程序员, ...
随机推荐
- Ambari2.5.3卸载smartsense
第一步,确定SmartSence服务均已关闭 curl -u admin:$PASSWORD -i -H 'X-Requested-By: ambari' -X PUT -d '{"Requ ...
- Android - FEATURE_NO_TITLE
Android设置无标题的方法 在onCreate()中写入: requestWindowFeature(Window.FEATURE_NO_TITLE); 例如: protected void on ...
- tensorflow Relu激活函数
1.Relu激活函数 Relu激活函数(The Rectified Linear Unit)表达式为:f(x)=max(0,x). 2.tensorflow实现 #!/usr/bin/env pyth ...
- (转)Spring注解完成Bean的定义
使用Spring注解完成Bean的定义 2010-04-21 16:48:54| 分类: spring|举报|字号 订阅 下载LOFTER客户端 通过@Autowired或@Reso ...
- swift3.0 基础练习-构造对象并按要求进行排序(struct)
struct练手 构造10个学生(要求有学生的姓名.数学成绩.英语成绩),按照学生英语和数学平均分的成绩从小到大输出学生的姓名.数学成绩.英语成绩及平均分 创建一个学生构造体,包含 姓名 name 数 ...
- java集合练习
分组练习: List<List<Student>> list=new ArrayList<List<Student>>();这个是二维集合,分组的时候 ...
- 内核对象kobject和sysfs(3)——kobj分析
内核对象kobject和sysfs(3)--kobj分析 在分析kobj之前,先总结下kobj的功能: 实现结构的动态管理: 实现内核对象到sysfs的映射: 实现自定义属性的管理. 关注一下kobj ...
- iOS项目冗余资源扫描脚本
iOS项目冗余资源扫描脚本 随着iOS项目的版本不断迭代,app中冗余文件会越来越多,app size也持续增加,是时候需要对app冗余资源进行检测,对app进行瘦身. 使用方法: 1. 运行环境为m ...
- 关于JavaScript组件化的探索
Loaders 先放出项目地址:https://github.com/j20041426/Loaders 这是一个可以动态选择加载动画的样式和颜色的插件.这个项目仅仅是作为对js组件化的一个探索,不太 ...
- JVM学习笔记三:垃圾收集器及内存管理策略
垃圾收集器 上文说到了垃圾收集算法,这次我们聊一下HotSpot的具体垃圾收集器的实现,以JDK1.7为例,其包含的可选垃圾收集器如下图: 不同收集器之间的连线,代表它们可以搭配使用,收集器所属的区域 ...