我试图理解flatMap
:flatMap(x->stream.of(x) )
不会使流变平并且flatMap(x->x.stream())
可以工作并给出所需的结果。有人可以解释两者之间的区别吗?
import java.util.*;
import java.util.stream.*;
class TestFlatMap{
public static void main(String args[]){
List<String> l1 = Arrays.asList("a","b");
List<String> l2 = Arrays.asList("c","d");
Stream.of(l1, l2).flatMap((x)->Stream.of(x)).forEach((x)->System.out.println(x));
Stream.of(l1, l2).flatMap((x)->x.stream()).forEach((x)->System.out.println(x));
}
}
输出 :
[a, b]
[c, d]
a
b
c
d