您的位置:首页 > 编程语言 > Java开发

Java8新特性——Lambda表达式应用场景

2018-03-04 20:55 246 查看
之前在学习Java8的新特性时,十分喜欢Lambda的简洁性,而真正地用以解决项目中的技术点时,更为之惊叹不已。现在有这样的需求:从由Project这个类组成的List中取出id和name组成对应的键值对。

有下面这样的实体类,简洁起见,将多余的字段和注解以及类的继承关系去除。

import java.util.Date;

/**
* Created by Mollychin on 2018/3/3.
*/
public class Project{
private int id;
private String name;
private Date createTime;
//省略响应的getter和setter方法。
}


现有
List<Project> allProjects = projectService.getAll();


要取得该list中项目状态为“Status.ENABLE”的项目的所有的id和name的键值对,若不采用lambda表达式,需要对该list进行循环、if判断等复杂操作。但一旦使用了Lambda表达式,嘿嘿,过程就显得相当简洁了。代码如下:

Map<Long, String> nameMap = null;
nameMap = allProjects.stream().filter(project -> Status.ENABLE.equals(project.getStatus()))
.collect(Collectors
.toMap(Project::getId, Project::getName, (value1, value2) -> value2));


上面只是Lambda表达式应用的一个小场景,感兴趣的小伙伴可以练练手哦。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: