java - Java 8 中运算符的便利功能?

标签 java functional-programming java-8

在 Python 中,如果我想对 xor 操作进行折叠,我可以这样写:

reduce(operator.xor, my_things, 0)

而不是更繁琐

reduce(lambda x, y: x^y, my_things, 0)

新的Java 8功能特性中有这样的东西吗?例如写这样的东西

myThings.reduce(0, Integer::xor)

而不是

myThings.reduce(0, (x, y) -> x ^ y)

最佳答案

Integer#sum(int, int)按照您在包 private IntPipeline 中的建议使用, 但对于其他数值运算符没有类似的方法。

@Override
public final int sum() {
    return reduce(0, Integer::sum);
}

您可以自己定义它们。

关于java - Java 8 中运算符的便利功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28306682/

相关文章:

lambda - Java 8 中的方法引用 : is overloading supported?

java - Stream#limit 可以返回比预期更少的元素吗?

java - 如何在 lambda Java8 中抛出已检查异常?

java - 如何在blpapi中获取证券的中文名称?

java - 将什么作为 Context 参数传递到文件 I/O 方法中?

recursion - SML 中的模式匹配 - 将列表表示为 (x::y)

java - 为什么java排名第一?

java - 需要正则表达式的帮助来排除“”中的拆分字符串

java - Spring 和 hibernate : non transactional service methods

Haskell - 由于我不明白的原因,非穷举模式