小编Duš*_*šan的帖子

为什么Stream API中没有flatten()方法?

以下两个代码段产生相同的结果.

flatMap:

Stream.iterate(2, n -> n + 4)
            .flatMap(n -> Stream.of(n, -(n + 2)));
Run Code Online (Sandbox Code Playgroud)

随着map其次是flatMap使用identity:

Stream.iterate(2, n -> n + 4)
            .map(n -> Stream.of(n, -(n + 2)))
            .flatMap(Function.identity());
Run Code Online (Sandbox Code Playgroud)

因此flatten,在Stream接口中包含无参数方法(如Scala的Stream)似乎很自然,允许将前面的示例写成:

Stream.iterate(2, n -> n + 4)
            .map(n -> Stream.of(n, -(n + 2)))
            .flatten();
Run Code Online (Sandbox Code Playgroud)

那么为什么API中没有flatten()方法Stream呢?

java-8 java-stream

2
推荐指数
1
解决办法
390
查看次数

标签 统计

java-8 ×1

java-stream ×1