jdk8 flatMap 和map的区别
在Java 8中,flatMap和map都是Stream接口中的方法,用于对流中的元素进行转换操作。它们之间的区别在于:
- map方法将流中的每个元素都应用给定的函数,并将结果包装成一个新的流返回。换句话说,map方法将每个元素都映射到一个新的值上。
示例代码:
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> squaredNumbers = numbers.stream()
.map(n -> n * n)
.collect(Collectors.toList());
- flatMap方法将流中的每个元素都应用给定的函数,并将结果扁平化成一个新的流返回。换句话说,flatMap方法将每个元素映射为一个流,然后将这些流合并成一个流。
示例代码:
List<List<Integer>> numbers = Arrays.asList(
Arrays.asList(1, 2, 3),
Arrays.asList(4, 5, 6),
Arrays.asList(7, 8, 9)
);
List<Integer> flattenedNumbers = numbers.stream()
.flatMap(List::stream)
.collect(Collectors.toList());
在上述示例中,flatMap方法将每个内部列表映射为一个流,然后将这些流合并成一个流,最终得到一个包含所有元素的列表。而map方法只是将每个内部列表映射为一个新的列表
原文地址: https://www.cveoy.top/t/topic/hDag 著作权归作者所有。请勿转载和采集!