如何将下面的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*/);
你可以这样做:
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提到的,从技术上讲,你不能把一条流分成两条流,然后收集。
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编程语言提供