ソフトウェアエンジニアの日常の雑記

日々思ったことをまとめます

mapとflatmapのメモ

本家はこちら

mapとflatmapのメモ.

map: 個数が変わらない。2個渡したら2個返ってくる flatmap: streamに変換させて、それを合成する。戻ってくるのはstreamが1つ。

@RunWith(JUnit4.class)
public class SampleTest {
    @Test
    public void test() {

        // map
       Arrays.asList("a,b,c", "d,e")
            .stream()
            .map(e -> Arrays.stream(e.split(",")))
            .forEach(System.out::println);

        // flatmap
        Arrays.asList("a,b,c", "d,e")
            .stream()
            .flatMap(e -> Arrays.stream(e.split(",")))
            .forEach(System.out::println);
    }
}

出力結果は下記

# map
java.util.stream.ReferencePipeline$Head@18ce0030
java.util.stream.ReferencePipeline$Head@4445629

# flatmap
a
b
c
d
e