List<GetProjectAndTeamOutBO> collectTrue = projectAndTeam.stream().filter(e->e.getGroState() == 1).collect(Collectors.toList()); 修改当grostate等于2时也过滤
时间: 2024-03-07 13:46:33 浏览: 67
可以在filter中加入条件,过滤出grostate等于1或2的元素,代码如下:
```
List<GetProjectAndTeamOutBO> collectTrue = projectAndTeam.stream()
.filter(e -> e.getGroState() == 1 || e.getGroState() == 2)
.collect(Collectors.toList());
```
这样就可以得到grostate等于1或2的元素集合了。
相关问题
List<GetProjectAndTeamOutBO> collectTrue = projectAndTeam.stream().filter(e-> e.getGroState() != 1).collect(Collectors.toList()); List<GetProjectAndTeamOutBO> collectTruer = projectAndTeam.stream().filter(e-> e.getGroState() == null).collect(Collectors.toList());为什么第一个会报错
根据代码,第一个会报错是因为 `projectAndTeam` 中的元素可能存在空引用,导致调用 `getGroState()` 方法时出现 NullPointerException 异常。可以在过滤之前加上 `Objects.nonNull()` 方法判断元素是否为空,如下所示:
```
List<GetProjectAndTeamOutBO> collectTrue = projectAndTeam.stream().filter(e -> Objects.nonNull(e) && e.getGroState() != 1).collect(Collectors.toList());
```
这样可以避免空引用异常。另外,第二个不会报错是因为它过滤的是 `getGroState()` 为 null 的元素,而不是调用 `getGroState()` 方法。
List<RsysMenu> rootMenus = list.stream().filter(item -> "M".equals(item.getParentId())).sorted().collect(Collectors.toList()); List<RsysMenu> rootMenus = list.stream().filter(item -> "M".equals(item.getParentId())).sorted().collect(Collectors.toList()); List<RsysMenu> rootMenus = list.stream().filter(item -> "M".equals(item.getParentId())).sorted().collect(Collectors.toList()); List<RsysMenu> rootMenus = list.stream().filter(item -> "M".equals(item.getParentId())).sorted().collect(Collectors.toList()); List<RsysMenu> rootMenus = list.stream().filter(item -> "M".equals(item.getParentId())).sorted().collect(Collectors.toList());
这段代码是一个Java代码片段,它的作用是从一个列表中过滤出所有父节点为"M"的菜单项,并按照一定规则进行排序,最后将结果收集到一个新的列表中。
首先,通过使用`stream()`方法将列表转换为流,然后使用`filter()`方法过滤出父节点为"M"的菜单项。接着,使用`sorted()`方法对菜单项进行排序。最后,使用`collect()`方法将过滤和排序后的菜单项收集到一个新的列表中。
请注意,代码中多次出现的重复行是输入错误,应该删除多余的行。正确的代码应该是这样的:
```java
List<RsysMenu> rootMenus = list.stream()
.filter(item -> "M".equals(item.getParentId()))
.sorted()
.collect(Collectors.toList());
```
这样,你就可以得到一个包含所有父节点为"M"的菜单项,并按照排序规则排列的列表。
阅读全文