resultList.stream() .filter(result -> dealTimeMap.get(result.getId()) != null) .forEach(resultVO -> { resultVO.setDealTime(dealTimeMap.get(resultVO.getId())); // 子服务进行中的也设置进去 List<ServiceProcessVO> children = resultVO.getChildren(); if(CollectionUtils.isNotEmpty(children)) { children.stream() .filter(item -> item.getDealTime() == null) .forEach(item -> item.setDealTime(dealTimeMap.get(item.getId())) ); } });
时间: 2024-04-26 19:20:54 浏览: 10
这是一段 Java 代码。它首先使用 Java 8 的 Stream 对 `resultList` 进行过滤,将 `dealTimeMap` 中不存在的 `result` 排除掉。然后使用 `forEach` 方法对每个结果对象进行操作。对于每个结果对象,它从 `dealTimeMap` 中获取对应的处理时间,并将其设置到结果对象中。同时,它还会获取结果对象的子服务列表 `children`,对于子服务列表中的每个子服务对象,如果其处理时间为 null,那么它也会从 `dealTimeMap` 中获取对应的处理时间,并将其设置到子服务对象中。
相关问题
resultList.stream().filter(x->{过滤非空})
这段代码使用了 Java 8 中的 Stream API,对一个 List 集合进行过滤操作,保留其中非空的元素。
具体来说,`resultList.stream()` 将 List 转化为 Stream 对象,`filter` 方法接受一个 Predicate 函数式接口作为参数,该接口的实现决定了要保留哪些元素。在这里,传入的是一个 lambda 表达式 `x -> {过滤非空}`,其中 `x` 表示 Stream 中的每一个元素,大括号中的代码表示判断 x 是否为空,返回一个 boolean 值。最终,该方法返回一个新的 Stream 对象,其中仅包含原来 List 中非空的元素。
resultList.stream().filter(x->{}),{}怎么对x进行非空过滤
可以使用Java 8的Optional类来对x进行非空过滤,代码如下:
```
resultList.stream().filter(x -> Optional.ofNullable(x).isPresent()).forEach(System.out::println);
```
或者使用Java 11的Objects类的非空判断方法,代码如下:
```
resultList.stream().filter(x -> Objects.nonNull(x)).forEach(System.out::println);
```
其中的`System.out::println`是一个简写的Lambda表达式,可以根据实际需求替换为其他操作。