array = Arrays.stream(array) //преобразовываем массив в стрим
.map(i -> i+1) //преобразовываем каждый элемент стрима
.toArray(); //преобразовываем стрим в массив
map将每个流值加 1,然后将所有新值转换为最终流。
示例flatMap:有一个array带有数字的二维数组,您需要获得一个带有数字的一维数组。
解决方案:
secondArray = Arrays.stream(array)
.flatMapToInt(i -> Arrays.stream(i)) //преобразовываем Stream<int[]> в Stream
.toArray(); // преобразовываем Stream в int[]
并且
map和flatMap可以应用于一个Stream<T>流并且都返回一个流Stream<R>。不同之处在于,一个运算map为每个输入值产生一个输出值,而一个运算为每个输入值flatMap产生任意数量(零个或多个)的值。操作
map(俄语中的About workmap)作为参数Function(例如,一个 lambda),为输入流(which<T>)的每个值调用,将该值转换为另一个值,并将结果值发送到输出流(其中<R>)。那些。
map为流中的每个对象返回 1 个对象,然后将所有对象转换为最终流。该操作
flatMap(俄语中的About workflatMap)采用一个函数(将输入流的每个值转换为一个流),将其应用于每个元素,并返回一个流,该流包含每个元素的一个、多个或没有元素输入流。也就是说,它
flatMap为原始流中的每个对象返回一个流,然后将生成的流合并到原始流中。示例
map:有一个带有数字的一维数组array。您需要从原始数组中获取一个数组,其中每个数字都加 1。解决方案:
map将每个流值加 1,然后将所有新值转换为最终流。示例
flatMap:有一个array带有数字的二维数组,您需要获得一个带有数字的一维数组。解决方案:
此示例创建一个由原始数组的每个元素组成的流 - 即 来自数组的流。然后在帮助下
i -> Arrays.stream(i),我们将流的每个元素(即一个数组)转换为带有数字的流。之后,它将flatMap所有结果流收集到一个最终流中。