地图
<R> Stream<R> map(Function<? super T,? extends R> mapper)
返回由将给定函数应用于此流元素的结果组成的流。
这是一个中间操作。
所以我建议创建两个不同的
List
一个
feePerReg
另一个
feePerRevenue
菲珀雷格
List<BigDecimal> feeperReg = globalPricingRequests.stream().flatMap(eventPrice->eventPrice.getEventTypePricingList().stream()).map(eventType->eventType.getFeePerReg()).collect(Collectors.toList());
财政收入
List<BigDecimal> feePerRevenue = globalPricingRequests.stream().flatMap(eventPrice->eventPrice.getEventTypePricingList().stream()).map(eventType->eventType.getFeePerRevenue()).collect(Collectors.toList());
谓语
用于检查两个列表的谓词
Predicate<BigDecimal> criteria = value -> value != null && value.signum() < 0;
验证feeperregandfeeperrevenue
方法需要两个
List<BigDecimal>
作为论证
private static boolean verifyFeePerRegAndFeePerRevenue(List<BigDecimal> feePerReg, List<BigDecimal> feePerRevenue) {
Predicate<BigDecimal> criteria = value -> value != null && value.signum() < 0;
return feePerReg.stream().anyMatch(criteria) && feePerRevenue.stream().anyMatch(criteria);
}
案例2
而不是两个不同的
表
,您只能有一个列表
eventTypePricingMapping
和
Predicate
两者都有条件
菲珀雷格
和
财政收入
事件类型PricingMapping
List<EventTypePricingMapping> result = globalPricingRequests.stream().flatMap(eventPrice->eventPrice.getEventTypePricingList().stream()).collect(Collectors.toList());
谓语
用于检查两者的谓词
Predicate<EventTypePricingMapping> criteria = value -> value.getFeePerRevenue() != null && value.getFeePerReg()!= null && value.getFeePerRevenue() < 0 && value.getFeePerReg < 0;
验证feeperregandfeeperrevenue
方法采取
List<EventTypePricingMapping>
应用
谓语
在名单上
private static boolean verifyFeePerRegAndFeePerRevenue(List<EventTypePricingMapping> price) {
Predicate<EventTypePricingMapping> criteria = value -> value.getFeePerRevenue() != null && value.getFeePerReg()!= null && value.getFeePerRevenue() < 0 && value.getFeePerReg < 0;
return price.stream().anyMatch(criteria);
}