【问题标题】:Can I make this for loop and if statement more concise with a stream?我可以用流使这个 for 循环和 if 语句更简洁吗?
【发布时间】:2022-01-21 03:59:43
【问题描述】:

我的代码运行良好,但我想练习 Java 8 流。我想知道我是否可以为此使用流?

quoteOrders 是实现IOrder 的订单对象列表。如果数据类似于bookOrder,则if 语句将为该对象的true,然后是return bookOrder.handleOrderRequest(data)

For(IOrder order: quoteOrders){
        if(order.hasRequest(data)){
                return order.handleOrderRequest(data);
        }
}

我考虑过可能将其更改为类似的内容,但我不确定如何添加 return 语句部分,或者是否可以使用流。

return quoteOrders.forEach(quoteOrder -> { quoteOrders.stream().filter(order -> order.hasRequest(data))

【问题讨论】:

    标签: java java-8 java-stream


    【解决方案1】:

    您可以使用filter 模拟if 语句,然后返回流的findFirst

    return quoteOrders.stream()
                      .filter(order -> order.hasRequest(data))
                      .findFirst()
                      .map(order -> order.handleOrderRequest(data))
                      .orElse(null); // or some other default behavior
    

    【讨论】:

      猜你喜欢
      • 2018-03-11
      • 1970-01-01
      • 2014-01-12
      • 1970-01-01
      • 1970-01-01
      • 2021-09-16
      • 1970-01-01
      • 1970-01-01
      • 2020-03-26
      相关资源
      最近更新 更多