- 此问题在此处已有答案**:
Break or return from Java 8 stream forEach?(14个答案)
昨天关闭。
for(Fees fee : feeList) {
if(fee.getType().equalsIgnoreCase(feeType)) {
baseFee = fee.getAmountFee();
break;
}
}
我想知道是否有可能将上面的例子转换成一个有for循环的流。
Break or return from Java 8 stream forEach?(14个答案)
昨天关闭。
for(Fees fee : feeList) {
if(fee.getType().equalsIgnoreCase(feeType)) {
baseFee = fee.getAmountFee();
break;
}
}
我想知道是否有可能将上面的例子转换成一个有for循环的流。
2条答案
按热度按时间wqsoz72f1#
当然,您可以按如下方式进行转换:
如果你想返回0作为默认结果,你可以在末尾添加
orElse(0)
,如果列表中的顺序不重要,你也可以使用findAny()
。nvbavucw2#
是的,可能,类似于:
解决方案说明:
filter
函数替换if条件map
函数将每个Fees
替换为其amountFee
findFirst
函数将执行与break;
相同的工作,并将在第一次匹配时返回。orElse
如果没有匹配项,则保留相同的baseFee
值流API(函数式编程)在性能上足够智能,这意味着它不会过滤所有内容,然后进行Map,而是以自己的方式进行,性能良好。