相关疑难解决方法(0)

如何交错(合并)两个Java 8 Streams?

 Stream<String> a = Stream.of("one", "three", "five");
 Stream<String> b = Stream.of("two", "four", "six");
Run Code Online (Sandbox Code Playgroud)

我需要做什么才能使输出如下?

// one
// two
// three
// four
// five
// six
Run Code Online (Sandbox Code Playgroud)

我调查了concat但是正如javadoc解释的那样,它只是一个接一个地追加,它没有交错/散布.

Stream<String> out = Stream.concat(a, b);
out.forEach(System.out::println);
Run Code Online (Sandbox Code Playgroud)

创建一个延迟连接的流,其元素是第一个流的所有元素,后跟第二个流的所有元素.

错误地给出了

 // one
 // three
 // five
 // two
 // four
 // six
Run Code Online (Sandbox Code Playgroud)

可以这样做,如果我收集它们并迭代,但希望更多Java8-y,Streamy :-)

注意

我不想压缩流

"zip"操作将从每个集合中获取一个元素并将它们组合在一起.

拉链操作的结果将是这样的:(不需要的)

 // onetwo
 // threefour
 // fivesix
Run Code Online (Sandbox Code Playgroud)

java functional-programming java-8 java-stream

11
推荐指数
1
解决办法
957
查看次数