stream使用

我是研究僧i 提交于 2020-11-24 18:29:12

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());
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!