Java8新特性——Lambda表达式应用场景
2018-03-04 20:55
246 查看
之前在学习Java8的新特性时,十分喜欢Lambda的简洁性,而真正地用以解决项目中的技术点时,更为之惊叹不已。现在有这样的需求:从由Project这个类组成的List中取出id和name组成对应的键值对。
有下面这样的实体类,简洁起见,将多余的字段和注解以及类的继承关系去除。
现有
要取得该list中项目状态为“Status.ENABLE”的项目的所有的id和name的键值对,若不采用lambda表达式,需要对该list进行循环、if判断等复杂操作。但一旦使用了Lambda表达式,嘿嘿,过程就显得相当简洁了。代码如下:
上面只是Lambda表达式应用的一个小场景,感兴趣的小伙伴可以练练手哦。
有下面这样的实体类,简洁起见,将多余的字段和注解以及类的继承关系去除。
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表达式应用的一个小场景,感兴趣的小伙伴可以练练手哦。
相关文章推荐
- Java常见设计模式应用场景
- JAVA6新特性之---java桌面应用中生成托盘(tray)图标的简单方法
- JAVA集合的应用之——集合的类型和各自的特性
- atitit.人脸识别的应用场景and使用最佳实践 java .net php
- java设计模式--观察者模式应用场景
- Redis高级特性及应用场景
- Java设计模式之《适配器模式》及应用场景
- Java设计模式的常见应用场景
- java_集合体系之List体系总结、应用场景——07
- Java 单例模式的常见应用场景
- Java8新特性-Lambda表达式
- java线程wait()方法的一个应用场景
- 2 weekend110的zookeeper的原理、特性、数据模型、节点、角色、顺序号、读写机制、保证、API接口、ACL、选举、 + 应用场景:统一命名服务、配置管理、集群管理、共享锁、队列管理
- 对比主流NoSQL数据库特性与应用场景
- Android(java)学习笔记233: 远程服务的应用场景(移动支付案例)
- Java发展:各版本JDK新特性 JVM发展 Java技术应用发展
- Storm:流式处理框架之特性与应用场景
- Java 8新特性:全新的Stream API和lambda表达式
- JAVA多线程 join() 方法详解及应用场景
- java新特性之for循环的增强应用