4

私は理解しようとしていますflatMap:flatMap(x->stream.of(x) )ストリームを平坦化せず、flatMap(x->x.stream())機能し、望ましい結果をもたらします。誰かが2つの違いを説明できますか?

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
4

2 に答える 2