jdk 1.8中的steam流在工作中的小记
循环:
List<AnalyzingTaskVo> analyzingTaskVos = page.getResult().stream().map(task -> { String taskJson = JSONObject.toJSONString(task); AnalyzingTaskVo vo = JSONObject.parseObject(taskJson, AnalyzingTaskVo.class); if (null != task.getStartTime()) { long startTime = task.getStartTime().getTime(); long end = null != task.getEndTime() ? task.getEndTime().getTime() : System.currentTimeMillis(); long time = (end - startTime) / 1000; String seconds = getRunningSeconds(time); vo.setRunTime(seconds); } return vo; }).map(analyzingTaskVo -> { list.stream().filter(analyzingTask -> analyzingTask.getTaskId().equals(analyzingTaskVo.getTaskId())) .filter(analyzingTask -> analyzingTask.getStarMark() == 1) .forEach(analyzingTask -> analyzingTaskVo.setStarMark(true)); return analyzingTaskVo; }).collect(Collectors.toList())
筛选:
departmentList = departmentList.stream().filter(department -> !department.getId().equals("0fac833f04d8428d9c49509e16e11201") && !department.getId().contains("test") && !department.getId().equals("f00e8bbc646c4f59bcfa863bf6a9f0da") && !department.getId().equals("chongmingbumen1") && !department.getId().equals("chongmingbumen2") && StringUtils.isNotBlank(department.getParentId())) .filter(department -> !department.getName().contains("失效")).collect(Collectors.toList());
分组:
Map<String, List<DepartmentVo>> departmentMap = departmentList.stream().collect(Collectors.groupingBy(DepartmentVo::getParentId, Collectors.toList()));
排序:
GPUList = GPUList.stream().filter(vo -> vo.getGpu() > 0).sorted((vo1, vo2) -> vo2.getGpu().compareTo(vo1.getGpu())).collect(Collectors.toList());
来源:oschina
链接:https://my.oschina.net/u/4852926/blog/4742194