带有赋值运算符的按位包含 OR 是否比 Java 中的典型赋值有优势?

问题描述

当查看一个或另一个 git 上的一些代码时,有时我会看到开发人员使用按位包含 OR 复合赋值运算符 (|=),其中简单的赋值就足够了。不幸的是,我手头没有这个解决方案的任何代码,所以我会尽量描述它。

假设我们在java中有以下代码

boolean found = false;
for (String s : stringSet) {
    if (s == null || s.equals("")) {
        found |= true; // <== this line
    }
}
if (!found) {
    System.out.println("No interesting string found");
}

我只询问尖线。为什么人们这样做?我知道我们可以有大量的数据,数十亿或数万亿的数据可以迭代。但是,尖线是否会如此显着地改变效率?如果我将其更改为简单赋值:found = true;,对于大量数据是否会明显变慢?

我不排除速度不是主要论点的可能性,但它对我来说似乎最有意义。

是的,我知道这段代码可以转换为方法或流,但这只是代码的简化,它会更复杂等等。我们可以假设在尖线之前(甚至在 {{1 }}),有大量代码可以做一些有意义的事情。请不要建议“改用流”之类的东西,因为我已经知道如何使用 Java 高级了。我想使用按位包含 OR 来理解这种莫名其妙的解决方案的现象。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)