lambda表达式的map和flatmap的区别

map: 对于Stream中包含的元素使用给定的转换函数进行转换操做,新生成的Stream只包含转换生成的元素。这个方法有三个对于原始类型的变种方法,分别是:mapToInt,mapToLong和mapToDouble。这三个方法也比较好理解,好比mapToInt就是把原始Stream转换成一个新的Stream,这个新生成的Stream中的元素都是int类型。之因此会有这样三个变种方法,能够免除自动装箱/拆箱的额外消耗;函数

map方法示意图:对象

map

flatMap:和map相似,不一样的是其每一个元素转换获得的是Stream对象,会把子Stream中的元素压缩到父集合中; flatMap方法示意图:blog

输入图片说明

相关文章
相关标签/搜索