理解 Java 8 的 map() 和 flatMap() 方法之间的差异
在 Java 8 中,map() 和 flatMap()方法可以应用于Stream
map() 方法
map() 操作为每个输入值生成一个输出值。本质上,它将一个函数应用于输入流中的每个元素。该函数接受输入值并生成单个结果值。
flatMap() 方法
相反, flatMap() 操作可以生成任意数量的值 (包括零)每个输入值。这是通过其参数实现的:一个接受一个值并返回任意数量的值的函数。
造成这种差异的原因是 Java 方法只能返回零个或一个值。 flatMap() 通过允许映射器函数返回流作为其输出来回避此限制。该流中的值随后被排出并传递到输出流。因此,输出被视为“扁平化”,因为映射器函数的值分组在输出流中无法区分。
用法
通常,在以下情况下使用 flatMap()映射器函数打算返回零值(使用 Stream.empty())或多个值(使用 Stream.of(a, b, c))。尽管如此,任何类型的流都可以返回。
以上是Java 8 Streams 中的 `map()` 和 `flatMap()` 有什么区别?的详细内容。更多信息请关注PHP中文网其他相关文章!