我映射了一个 NameValuePair
的流带有 lookupFunction
(返回 Function
),像这样:
List<NameValuePair> paramPairs = getParamPairs();
List<NameValuePair> newParamPairs = paramPairs.stream()
.map((NameValuePair nvp) -> lookupFunction(nvp.getName()).apply(nvp))
.flatMap(Collection::stream)
.collect(toList());
但是如果 lookupFunction
怎么办?返回了 Collection<Function>
相反,我想执行 .map()
每个返回的 Function
秒。我该怎么做?
最佳答案
如果 lookupFunction(nvp.getName())
返回函数集合,您可以获得该集合的流并将每个函数映射到将其应用于 NameValuePair 的结果:
List<NameValuePair> newParamPairs = paramPairs.stream()
.flatMap((NameValuePair nvp) -> lookupFunction(nvp.getName()).stream().map(func -> func.apply(nvp)))
.flatMap(Collection::stream)
.collect(toList());
关于java - 将函数列表应用于 Java 流 .map() 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30779670/