1. forEach 函数使用 ```java List list = JSON.parseObject(str, new TypeReference>() {}); List failList = new ArrayList<>(list.size());

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

    1. 通过 forEach 函数,指定 list 里面的每个变量均执行函数体里面的代码。
    2. 2. `stream().map` 将一个 list 里面部分字段组装成另一个list
    3. ```java
    4. List<Integer> projectIdList = new ArrayList<>();
    5. List<Project> projects = projectService.selectProjectAll(0);
    6. projectIdList = projects.stream()
    7. .map(Project::getProjectId)
    8. .filter(Objects::nonNull)
    9. .distinct()
    10. .collect(Collectors.toList());
    1. steam().collect将 list 里面部分字段组装成 map

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