在
Python中,如果我想对xor操作进行折叠,我可以写:
reduce(operator.xor,my_things,0)@H_403_3@而不是更麻烦
reduce(lambda x,y: x^y,0)@H_403_3@在新的Java 8功能特性中是否有类似的东西?例如写这样的东西
myThings.reduce(0,Integer::xor)@H_403_3@而不是
myThings.reduce(0,(x,y) -> x ^ y)@H_403_3@
解决方法
正如您在私有包
IntPipeline
中所建议的那样使用了
Integer#sum(int,int)
,但是没有其他数字运算符的类似方法.
@Override public final int sum() { return reduce(0,Integer::sum); }@H_403_3@您可以自己定义它们.