将增强的循环转换为Java 8流,过滤器

问题描述 投票:-1回答:2

我正在尝试学习Java8。是否可以将下面的方法转换为Java 8 Streams,filter和forEach。如果是这样,如何?

String[] couponList1;
couponList = Arrays.asList(coupons.split(","));
for(String coupon:couponList) {
  singleCouponUsageCount = getSingleCouponUsageCount(coupon);
  if(singleCouponUsageCount >= totalUsageCount)
    return 0;
}
return 1;
java java-8 stream java-stream
2个回答
1
投票

您可以在数组的元素上单击Stream,将它们映射到其使用计数,然后使用anyMatch确定是否有任何使用计数符合应导致返回0的条件:

return Arrays.stream(coupons.split(","))
             .map(coupon -> getSingleCouponUsageCount(coupon))
             .anyMatch(count -> count >= totalUsageCount) ? 0 : 1;

0
投票

您可以这样操作

if (Stream.of(coupons.split(",")).anyMatch(coupon -> getSingleCouponUsageCount(coupon) >= totalUsageCount)) {
        return 0;
}

return 1;
© www.soinside.com 2019 - 2024. All rights reserved.