List<RoundAndSupplierPojo> roundAndSupplierPojos 这个集合中筛选出 private Long roundId;最大的一组集合
时间: 2024-10-23 09:07:46 浏览: 13
List<Long>转一维数组 Long[](csdn)————程序.pdf
5星 · 资源好评率100%
为了从`List<RoundAndSupplierPojo>`这个集合中筛选出`roundId`属性值最大的一组,你可以使用Java 8的流API(Stream API)来完成这个操作。假设`RoundAndSupplierPojo`有一个比较器可以根据`roundId`进行排序:
```java
import java.util.Comparator;
import java.util.stream.Collectors;
// 假设RoundAndSupplierPojo有一个Comparator方法用于roundId的比较
class RoundAndSupplierPojo {
// ...
public static Comparator<RoundAndSupplierPojo> byRoundId() {
return Comparator.comparing(RoundAndSupplierPojo::getRoundId);
}
}
public List<RoundAndSupplierPojo> getMaxRoundIds(List<RoundAndSupplierPojo> roundAndSupplierPojos) {
return roundAndSupplierPojos.stream()
.max(RoundAndSupplierPojo::byRoundId)
.map(Collections::singletonList) // 如果只有一个最大值,返回单元素列表
.orElse(roundAndSupplierPojos); // 否则返回原列表(如果所有元素相等)
}
```
这段代码首先创建了一个根据`roundId`进行比较的`Comparator`,然后用`stream().max()`找到具有最大`roundId`的元素。如果存在多个相同的最大值,`max()`方法只返回其中一个。为了确保返回的是一个列表(即使只有一个元素),我们使用了`map(Collections::singletonList)`。如果没有任何元素(即列表为空),`orElse()`方法返回原始列表。
现在,`getMaxRoundIds`方法将返回包含最大`roundId`的子列表。
阅读全文