当前位置: 首页 > 知识库问答 >
问题:

如何在java流中编写if/else?[重复]

全心思
2023-03-14

如何将下面的if/else语句转换为java流管道?

我有一个选择

if(returnOptional().isPresent) {
    List<Object> list = db.findAllById(id);
    if(list.stream().anyMatch(x -> /*predicate*/)){
        //perform function
    } else {
        //perform function
    }
}

部分解决方案:

      returnOptional()
      .map(obj -> {
        List<Object> list = db.call();
        return list.stream()
          .filter(/*Predicate*/)
          .findAny().map(object -> /*function*/)
          .orElse(null);
    }).orElseGet(() -> /*function*/);

共有2个答案

冀萧迟
2023-03-14

你可以这样做:

if(returnOptional().isPresent) {
List<Object> list = db.findAllById(id);

list.stream().map(object -> {
    if(/*predicate logic*/) {
        // perform function if predicate logic true
    }
    else {
        // perform function if predicate logic false
    }
    return object;
  });
}

但是正如philip提到的,从技术上讲,你不能把一条流分成两条流,然后收集。

臧正平
2023-03-14
        Optional.ofNullable(list).ifPresent( y -> {
                    if (y.stream().anyMatch(x -> /*predicate*/)) {
                        System.out.println("a");
                    } else {
                        System.out.println("b");
                    }
                });
 类似资料:
  • 问题内容: 如何在MySQL查询中编写IF ELSE语句? 像这样: 然后在我的数组中,我应该能够做到这一点: 问题答案: 您可能要使用表达式。 他们看起来像这样:

  • 问题内容: 我想做的事情显示在下面的2个流调用中。我想根据某种条件将一个集合分成2个新集合。理想情况下,我想在1中做到这一点。我已经看到了流的.map函数所使用的条件,但是forEach找不到任何东西。实现我想要的最好的方法是什么? 问题答案: 只需将条件放入lambda本身,例如 当然,这假设两个集合(和)在上述代码之前都已声明和初始化。 更新:如JornVernee所建议的那样,使用可以使代码

  • 我如何重构所有这些看起来重复和太长的代码,有没有办法让它变短? 我试过使用Switch语句,但在这种情况下不起作用。 “typeofdata”变量包含一个用于匹配相关行的字符串。

  • 我有两个问题。 ①当useState初始值真假时,if语句如何适应下面? 比如说。。 ②当if语句为true和false时,如何使setGoodBotton从React钩子和if语句适应下面? 例如…(这不是工作)

  • 我试图在Netbeans中运行这段简单的代码,并以某种方式不断得到一个“else-without-if”错误。 我也在Eclips中运行了这个,在那里我得到了一条评论,其他的应该转换成一段时间,这让我更加困惑。我已经做了一些这样的例子,它们很有效。 我还省略了if语句末尾的分号,但它不起作用。

  • Perl条件语句有助于决策,这需要程序员指定一个或多个要由程序评估或测试的条件,以及在条件被确定为真时要执行的一个或多个语句,以及可选的其他条件如果确定条件为假,则执行语句。 以下是大多数编程语言中的典型决策结构的一般性 - 数字0,字符串'0'和“”,空列表()和undef在布尔上下文中都是false ,所有其他值都为true 。 否定真正的价值! 或not返回特殊的假值。 Perl编程语言提供