Kev*_*dge 3 java java-8 java-stream
在Java 8中,我该如何做这样的事情......
public String join(Stream<String> strings, String string) {
return strings.collect(Collectors.joining(string));
}
Run Code Online (Sandbox Code Playgroud)
但对于Runnables而不是Strings.
public void join(Stream<Runnable> runnables, Runnable runnable) {
}
Run Code Online (Sandbox Code Playgroud)
换句话说,我想runnable在runnables除了最后一个之外的流中的每个元素之后调用.
runnables
.reduce((r1, r2) -> () -> {
r1.run();
runnable.run();
r2.run();
})
.orElse(() -> {})
.run();
Run Code Online (Sandbox Code Playgroud)
首先使用flatMap在流中的每个元素之前插入交错runnable,然后使用从流中删除第一个元素skip.然后按顺序运行所有这些.
public void join(Stream<Runnable> runnables, Runnable runnable) {
runnables
.flatMap(r -> Stream.of(runnable, r))
.skip(1)
.forEachOrdered(Runnable::run);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
345 次 |
| 最近记录: |