List<RoundAndSupplierPojo> roundAndSupplierPojos 这个集合中筛选出 private Long roundId;最大的一组集合,这个字段是Long类型的
时间: 2024-10-23 20:08:05 浏览: 14
java8实现list集合中按照某一个值相加求和,平均值等操作代码
要从`List<RoundAndSupplierPojo>`集合中筛选出`roundId`字段最大(假设它是Long类型并且已经定义了比较规则)的一组元素,你可以使用Java 8的Stream API。首先,你需要创建一个新的`Stream`对象,然后对它们进行排序,最后获取排序后的第一个元素,也就是最大值对应的集合。
这里是示例代码:
```java
import java.util.Comparator;
import java.util.List;
// 假设RoundAndSupplierPojo有一个getter方法供我们获取roundId
Comparator<RoundAndSupplierPojo> comparator = Comparator.comparing(RoundAndSupplierPojo::getRoundId, Collections.reverseOrder());
Optional<List<RoundAndSupplierPojo>> maxRoundIdGroup =
roundAndSupplierPojos.stream()
.max(comparator)
.map(round -> roundAndSupplierPojos.stream().filter(p -> p.getRoundId().equals(round.getRoundId())).collect(Collectors.toList()));
if (maxRoundIdGroup.isPresent()) {
List<RoundAndSupplierPojo> largestRoundIds = maxRoundIdGroup.get();
// 使用largestRoundIds处理或打印结果
} else {
System.out.println("No RoundAndSupplierPojo found with the maximum roundId");
}
```
这段代码首先定义了一个降序排列的比较器,然后在stream上调用`max()`方法找到具有最大`roundId`的`RoundAndSupplierPojo`。接着,如果找到了最大值,就过滤出所有`roundId`相同的元素并收集到一个新的列表。
阅读全文