Java 8のStreamにmap()とflatMap()があります。その違いを検証します。 結論 まず結論から言うと、 ・map(T -> R)は、Tのデータ型をRのデータ型に1:1の変換です。 ・flatMap(T -> Stream<R>)は、Tのデータ型からStream<R>に1:Nの変換です。 Stream#map() List<String> nameList = Arrays.asList("Tanaka", "Suzuki", "Takahashi"); Stream<Integer> stream = nameList.stream().map(x -> x.length()); System.out.println(stream.collect(Collectors.toList()));