Java 8添加了lambda表达式。以与匿名类类似的方式使用lambda很简单,但是我想知道是否存在使用命名函数作为其他函数的参数的相关功能。例如,是否有Java方法可以编写以下Python代码:
list1 = (1,2,3)
list2 = (4,5,6)
def add(a, b):
return a+b
for e in map(add, list1, list2):
print(e)
输出
5
7
9
是的,您可以使用方法引用,例如Integer::sum
允许使用lambda。
int six = IntStream.of(1, 2, 3)
.reduce(0, Integer::sum);
这相当于
int six = IntStream.of(1, 2, 3)
.reduce(0, (a, b) -> Integer.sum(a, b));
精确地在Java 8中添加了诸如Integer.sum
和这样的方法,Double.max
以便可以在这样的lambda中使用它们。
但是,没有内置的方法可以像Python那样将多个列表“压缩”在一起。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句