我目前正在处理Java 8中使用Lambdas进行按位操作的循环转换问题。
给定一组复杂的条目,循环需要遍历所有条目并对它们调用给定的方法(方法返回布尔值)。之后,返回结果。
boolean areAllSuccessful = true;
for (SomeEntry entry : entries) {
areAllSuccessful = areAllSuccessful & entry.doComplexAction(); // keep calling the method on other entries regardless of the result.
}
return areAllSuccessful;
return entries
.stream()
.map(entry -> entry.doComplexAction())
.filter(result -> result == false)
.count() > 0
谢谢!
那不应该是这样的吗:
boolean areAllSuccessful = entries.stream()
.map(entry -> entry.isSuccessful())
.reduce(Boolean.TRUE, Boolean::logicalAnd);
问题内容: 什么逻辑运营商之间的不同,和位类似物,在使用?各种解决方案的效率是否存在差异? 问题答案: 逻辑运算符对逻辑值进行运算,而按位运算符对整数位进行运算。停止考虑性能,并按其预期目的使用它们。
问题内容: 考虑以下代码: 我可以用Python(和其他语言)理解算术运算符,但我对“按位”运算符却不太了解。在上面的示例(来自Python书)中,我了解了左移功能,但不了解其他两个。 另外,按位运算符实际上是用来做什么的?我会喜欢一些例子。 问题答案: 按位运算符是对多位值进行操作的运算符,但在概念上一次只能处理一位。 仅当其两个输入均为1时,才为1;否则为0。 如果其输入之一或全部为1,则为1
问题内容: 就此而言,与0xff进行按位AND运算本质上不是意味着要返回相同的值吗? 奇怪的是,如果未包含ANDing,我将得到-1,而包含ANDing则得到255。有人可以解释原因吗? 在我看来0xff只是11111111。不是吗? 问题答案: 是的,就是。但这试图显示无符号字节值,即使在Java中已签名。该值是已签署,但它是一个。 当价值被读取,打印值将产生。所以它分配给具有更大的范围,并且可
通过np.bitwise_and()函数对输入数组中的整数的二进制表示的相应位执行位与运算。 例子 输出如下: 13 和 17 的二进制形式: 0b1101 0b10001 13 和 17 的位与: 1 你可以使用下表验证此输出。 考虑下面的位与真值表。 通过np.bitwise_or()函数对输入数组中的整数的二进制表示的相应位执行位或运算。 import numpy as np a,b = 1
求子集[M]
问题内容: 我有一些对字节执行按位运算的C#代码。我正在golang尝试做同样的事情,但是遇到了困难。 C#中的示例 我读过golang无法对字节类型执行按位运算。因此,我是否必须将代码修改为uint8类型才能执行这些操作?如果是这样,是否有一种干净,正确/标准的方法来实现? 问题答案: Go当然可以对类型进行按位运算,这只是的别名。我必须对您的代码进行的唯一更改是: 变量声明的语法 在将其添加到