flatmap和map的源代码:
如果你有专门的去写代码观察:
二者的返回值是区别的。大致可以理解:
map:map方法返回的是一个object,map将流中的当前元素替换为此返回值;
flatMap:flatMap方法返回的是一个stream,flatMap将流中的当前元素替换为此返回流拆解的流元素;
原始数据:
class1 100
class2 86
class3 70
class1 102
class2 65
class1 45
class2 85
class3 70
class1 16
class2 88
class1 95
class2 37
class3 98
class1 99
class2 23
两者的输出:
class1
100
class2
86
class3
70
class1
102
class2
65
class1
45
class2
85
class3
70
class1
16
class2
88
class1
95
class2
37
class3
98
class1
99
class2
23
*******************
[Ljava.lang.String;@469dae73
[Ljava.lang.String;@6fba91e7
[Ljava.lang.String;@74fbe02f
[Ljava.lang.String;@bfd93a3
[Ljava.lang.String;@20b85a99
[Ljava.lang.String;@1b36c2c0
[Ljava.lang.String;@3067b311
[Ljava.lang.String;@57605e35
[Ljava.lang.String;@35eeaad2
[Ljava.lang.String;@18e35e6d
[Ljava.lang.String;@1511895b
[Ljava.lang.String;@40d5fc3a
[Ljava.lang.String;@ad66c8
[Ljava.lang.String;@23f4086
[Ljava.lang.String;@1b7d5acb