ewo*_*wok 5 java lambda java-8
Java 8添加了lambda表达式.以类似于匿名类的方式使用lambdas非常简单,但我想知道是否存在使用命名函数作为其他函数的参数的相关功能.例如,是否有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)
Run Code Online (Sandbox Code Playgroud)
产量
5
7
9
Run Code Online (Sandbox Code Playgroud)
是的,您可以使用方法引用,例如Integer::sum允许使用 lambda 的地方。
int six = IntStream.of(1, 2, 3)
.reduce(0, Integer::sum);
Run Code Online (Sandbox Code Playgroud)
这相当于
int six = IntStream.of(1, 2, 3)
.reduce(0, (a, b) -> Integer.sum(a, b));
Run Code Online (Sandbox Code Playgroud)
Integer.sumJava 8 中添加了像和这样的方法Double.max,因此它们可以在像这样的 lambda 中使用。
不过,没有内置方法可以像 Python 那样将多个列表“压缩”在一起。