reportingList.stream().sorted(Comparator.comparing(e->MapUtils.getInteger(e,"value"),Comparator.nullsLast(Integer::compareTo))).collect(Collectors.toList());
时间: 2024-04-27 13:20:33 浏览: 146
这是一个 Java 8 中的流式操作,对 `reportingList` 中的元素进行排序,并将排序后的结果收集到一个新的列表中。具体来说:
- `stream()` 方法将 `reportingList` 转换为一个流(Stream)。
- `sorted()` 方法对流中的元素进行排序。这里使用了一个比较器(Comparator)来指定排序方式。这个比较器先按照元素中名为 "value" 的属性进行升序排序,如果这个属性值为 null,则将其排在最后。
- `collect()` 方法将排序后的结果收集到一个新的列表中,并返回这个列表。
需要注意的是,这里的 `MapUtils` 是 Apache Commons Lang 中的一个工具类,用于处理 Map 类型的数据。`getInteger()` 方法用于获取 Map 中指定键("value")对应的值,并将其转换为 Integer 类型。如果值为 null,则返回 null。
相关问题
reportingList.stream().sorted(Comparator.comparing(e -> MapUtils.getInteger(e, "value"), Comparator.nullsLast(Integer::compareTo))).collect(Collectors.toList());
这段代码使用Java 8的Stream API和Comparator对List进行排序,排序的依据是List中的每个元素都是一个Map类型,且Map中的一个名为"value"的键对应的值是一个Integer类型。排序时,首先通过Comparator.comparing方法创建一个Comparator,该Comparator将根据Map中"value"键对应的值进行排序,如果某个元素的"value"键对应的值为null,则将其排在最后;然后使用sorted方法对Stream进行排序;最后使用collect方法将Stream转换为List。这段代码的作用是将reportingList中的Map按照"value"键对应的值进行排序,并返回排序后的List对象。
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()`静态方法去掉即可。
阅读全文
相关推荐
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.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)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)