jdk8 流式开发案例

发布时间 2023-09-26 09:59:12作者: kisshappyboy

List tempList = depts.stream().map(SysDept::getDeptId).collect(Collectors.toList()); 解释每个方法并 转化为常用java代码

这段代码使用了Java 8中的Stream API,对一个名为 depts 的列表进行操作。下面是对每个方法的解释,并给出相应的常用Java代码示例:

1、 depts.stream():将列表 depts 转换为一个流(Stream)对象。流提供了一种便捷的方式来操作集合或数组。

Stream<SysDept> stream = depts.stream();
2、 map(SysDept::getDeptId):对流中的每个元素应用一个函数 SysDept::getDeptId,将其转换为 DeptId 值,并返回包含转换结果的新流。
Stream<Long> idStream = stream.map(SysDept::getDeptId);
3、 collect(Collectors.toList()):将流中的元素收集到一个列表中, 将原始的 depts 列表中的每个 SysDept 对象的 deptId 属性提取出来,并组成一个新的 List 列表 tempList。
List<Long> tempList = idStream.collect(Collectors.toList());
等价的常用Java代码如下所示:

for (SysDept dept : depts) {
    tempList.add(dept.getDeptId());
}