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