gpt4 book ai didi

Java评估多个 boolean 参数是否相等

转载 作者:行者123 更新时间:2023-11-29 08:27:17 27 4
gpt4 key购买 nike

我正在实现一个 N-nary 树(这里 N=4),如果一个节点的所有四个子节点的 boolean 属性 val 都相等,我想放入一个逻辑来做某事,我尝试过:

if (childOne.val == childTwo.val == childThree.val == childFour.val){
doSomthing();
}

但是这对我的测试用例不起作用,所以我必须将其更改为更明确和冗长:

if (childOne.val == childTwo.val && childTwo.val == childThree.val && childThree.val == childFour.val){
doSomthing();
}

而且这个有效。但是我无法理解为什么第一次评估没有给我正确答案。

最佳答案

== 运算符是左关联的,因此您的第一个表达式看起来像这样添加了方括号:

(((childOne.val == childTwo.val) == childThree.val) == childFour.val)

下面是上述情况,但并非所有四个值都相同的情况:

  • child 1 和 2 是错误的
  • child 3 和 4 是真的

另一种方法:

Stream.of(childOne.val, childTwo.val, childThree.val, childFour.val)
.distinct().count() == 1

我建议您坚持使用普通的旧 &&,因为没有 BooleanStream 并且 boolean 值需要装箱。

关于Java评估多个 boolean 参数是否相等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51603813/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com