list.stream().filter().map(SysUsergrid::getGridcode)
时间: 2023-07-21 08:56:55 浏览: 85
这段代码是 Java 8 中的 Stream API 的用法,它对一个 List 进行操作,具体包括三个步骤:
1. 将 List 转换成 Stream:通过调用 list 对象的 stream() 方法,将 List 转换成一个 Stream。
2. 过滤操作:通过调用 Stream 对象的 filter() 方法,过滤出符合条件的元素,该方法接收一个 Predicate 函数式接口作为参数,用于判断每个元素是否符合条件。
3. 映射操作:通过调用 Stream 对象的 map() 方法,将符合条件的元素转换成另一种类型的元素,该方法接收一个 Function 函数式接口作为参数,用于将每个元素进行转换。
具体地,这段代码将 list 中的元素按照某种条件进行过滤并转换成另一种类型的元素,具体转换方式是调用 SysUsergrid 类的 getGridcode() 方法,得到一个包含转换后元素的 Stream。
相关问题
List<String> list= new ArrayList<>(); List<String> leaderId = departs.stream().filter(depart -> StringUtils.isNotBlank(depart.getFdLeaderId())).map(Depart::getFdLeaderId).collect(Collectors.toList()); List<String> etxLeaderId = departs.stream().filter(depart -> StringUtils.isNotBlank(depart.getFdLeaderExtId())).map(Depart::getFdLeaderExtId).collect(Collectors.toList()); list = account.stream().filter(departAccountVo -> StringUtils.isNotBlank(departAccountVo.getFdAccountId())).map(DepartAccountVo::getFdAccountId).collect(Collectors.toList()); list.addAll(leaderId); list.addAll(etxLeaderId); list = list.stream().distinct().collect(Collectors.toList()); 优化这段代码
可以使用链式调用的方式,避免重复的流操作,同时也可以在收集器中使用toSet()方法来去重。优化后的代码如下:
```
List<String> list = departs.stream()
.flatMap(depart -> Stream.of(depart.getFdLeaderId(), depart.getFdLeaderExtId()))
.filter(StringUtils::isNotBlank)
.distinct()
.collect(Collectors.toList());
list.addAll(account.stream()
.map(DepartAccountVo::getFdAccountId)
.filter(StringUtils::isNotBlank)
.collect(Collectors.toList()));
```
List<List<ZeekrFriend>> collect1 = zeekrFriendsMap.entrySet().stream().filter(entry -> collect.contains(entry.getKey())) .map(Map.Entry::getValue) .collect(Collectors.toList()); List<ZeekrFriend> collect2 = collect1.stream() .flatMap(List::stream) .collect(Collectors.toList());优化这段代码
可以将两个流操作合并为一个,这样可以避免创建中间集合,提高代码的效率。示例代码如下:
```java
List<ZeekrFriend> flattenedList = zeekrFriendsMap.entrySet().stream()
.filter(entry -> collect.contains(entry.getKey()))
.flatMap(entry -> entry.getValue().stream())
.collect(Collectors.toList());
```
这样就可以将原来的两个流操作合并为一个,将Map中符合条件的value打平成一个List<ZeekrFriend>。
阅读全文
相关推荐
![-](https://img-home.csdnimg.cn/images/20241231044930.png)
![-](https://img-home.csdnimg.cn/images/20241231044930.png)
![-](https://img-home.csdnimg.cn/images/20241231044930.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)