projectManageList.stream().filter(item -> null != item.getXh()) .sorted(Comparator.comparing(ProjectManage::getXh)).collect(Collectors.toList());
时间: 2024-04-27 21:24:49 浏览: 83
这是一个 Java 8 中的 Stream 操作,对 `projectManageList` 这个列表进行了筛选、排序、收集等操作,具体解释如下:
- `projectManageList`:表示需要进行操作的列表。
- `stream()`: 将列表转换成 Stream 对象。
- `.filter(item -> null != item.getXh())`:对 Stream 进行过滤操作,只保留 `getXh()` 方法不为 `null` 的 `ProjectManage` 对象。
- `.sorted(Comparator.comparing(ProjectManage::getXh))`:对 Stream 进行排序操作,按照 `getXh()` 方法的自然顺序进行排序。
- `.collect(Collectors.toList())`:将 Stream 转换成 List 对象并返回。
最终返回的是一个经过过滤和排序的 `ProjectManage` 对象的列表。
相关问题
debtBuyerByMainBuyerId.stream() .filter(map -> !Objects.equals(MapUtils.getInteger(map, "buyerId"), mainBuyerId)) .sorted(Comparator.comparing(map -> (BigInteger) MapUtils.getObject(map, "maxDebtDay"))) 实现倒序或正序
要实现倒序或正序,可以使用`reversed()`方法或`Comparator.reverseOrder()`静态方法。例如,要按照最大欠款天数从大到小排序,可以这样写:
```
debtBuyerByMainBuyerId.stream()
.filter(map -> !Objects.equals(MapUtils.getInteger(map, "buyerId"), mainBuyerId))
.sorted(Comparator.comparing(map -> (BigInteger) MapUtils.getObject(map, "maxDebtDay")).reversed())
```
或者这样写:
```
debtBuyerByMainBuyerId.stream()
.filter(map -> !Objects.equals(MapUtils.getInteger(map, "buyerId"), mainBuyerId))
.sorted(Comparator.comparing(map -> (BigInteger) MapUtils.getObject(map, "maxDebtDay"), Comparator.reverseOrder()))
```
这两种写法都可以将排序结果倒序输出。如果要正序排序,可以将`reversed()`方法或`Comparator.reverseOrder()`静态方法去掉即可。
将下面的代码 List<GroupRankingBean> sortedList = li.stream() .sorted(Comparator.comparing(GroupRankingBean::getLast_year_rate_of_increase)) .collect(Collectors.toList());变成倒序排序
可以将Comparator的比较方式改为逆序排列即可,修改后的代码如下:
```
List<GroupRankingBean> sortedList = li.stream()
.sorted(Comparator.comparing(GroupRankingBean::getLast_year_rate_of_increase).reversed())
.collect(Collectors.toList());
```
其中,`reversed()`方法用于将Comparator的比较方式改为逆序排列。
阅读全文