gpt4 book ai didi

java - 使用流组成函数数组

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:44:40 25 4
gpt4 key购买 nike

我想将一组函数组合成一个函数。给定多个函数,该方法应返回一个函数,该函数是输入函数的组合。

一种方法是

public static <T> Function<T,T> composeAll(Function<T,T>... functions){
Function<T,T> res = Function.identity();
for(Function<T,T> f : functions){
res = res.compose(f);
}
return res;
}

我希望通过首先创建函数数组流来实现相同的结果。但我不知道该怎么做

public static <T> Function<T,T> composeAll2 (Function<T,T>... functions){
Function<T,T> res = Function.identity();
Arrays.stream(functions). ???
return res;
}

我现在打问号的最后一个方法应该输入什么代码?

最佳答案

您可以使用 Stream#reduce()操作:

public static <T> Function<T,T> composeAll2 (Function<T,T>... functions){
return Arrays.stream(functions).reduce(Function.identity(), Function::compose);
}

这与您编写函数的迭代方式相同。

关于java - 使用流组成函数数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47755408/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com