Java Lamda 表达式用法举例

1. forEach 函数使用

通过 forEach 函数,指定 list 里面的每个变量均执行函数体里面的代码。

List<TaskExcuteVo> list = JSON.parseObject(str, new TypeReference<List<TaskExcuteVo>>() {});
List<Integer> failList = new ArrayList<>(list.size());

list.forEach(taskExcuteVo -> {
            failList.add(taskExcuteVo.getCaseFailCount() + taskExcuteVo.getCaseLockCount());
});

2. stream().map

将一个 list 里面部分字段组装成另一个list

List<Integer> projectIdList = new ArrayList<>();
List<Project> projects = projectService.selectProjectAll(0);
projectIdList = projects.stream()
                    .map(Project::getProjectId)
                    .filter(Objects::nonNull)
                    .distinct()
                    .collect(Collectors.toList());

3. steam().collect

将 list 里面部分字段组装成 map

/**
 * 生成 id -> user 的 Map
 */
public Map<Long, User> getUserMapByIds(List<Integer> userIds) {
    List<User> users = getUsersByIds(userIds);
    return users.stream().collect(Collectors.toMap(User::getUserId, Function.identity(), (k1, k2) -> k1));
}

4. stream().anyMatch

anyMatch:判断的条件里,任意一个元素满足条件,返回true
allMatch:判断条件里的元素,所有的元素都满足条件,返回true
noneMatch:与allMatch相反,判断条件里的元素,所有的元素都不满足条件,返回true

return shouldNotFilterAntPatterns.stream()
                    .anyMatch(p -> antPathMatcher.match(p, urlPathHelper.getRequestUri(request)));

未完待续。。。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容