Difference between map and flatMap in java

Difference between map and flatmap in java

In this post, we will see the difference between map and flatMap in java.I have already covered Stream’s map and flatMap methods  in previous articles.

As you might know, Stream’s map and flatMap method both can be applied on Stream<T> and return Stream<R> as output.

The actual difference is, map operation produces one output value for one input value but flatMap operation produces zero or more number of values for each input value.
Let’s understand with the help of the simple example.

Stream map vs flatMap

You have list of String and you want to make them uppercase, in this case, you can simply use map function as below.

When you run above program, you will get below output:

INDIA
CHINA
NEPAL
BHUTAN

map works well in case of simple cases as above.

What if you have more complex data structure such as List of List of String(List<List<String>>)

Let’s say you have a list of list of cities(List<List<String>>) and you want to find all the cites which start with "T".
You can not directly use filter on List<List<String>>, it’s not going to work.
You need to use flatmap to flatten the List and then use the filter on it to get the results.

When you run above program, you will get below output:

Tianjin
Thimphu

That’s all about the difference between map and flatMap in java.


import_contacts

You may also like:

Related Posts

  • Convert Date to LocalDate in java
    12 January

    Java Date to LocalDate

    In this post, we will see how to convert Date to LocalDate in java. Sometimes, we may need to convert Date to new Java 8 APIs and vice versa. There are multiple ways to convert Date to LocalDate in java. Read also: Convert LocalDate to Date in java Using toInstant() method of Date class You […]

  • Convert LocalDate to Date in java
    11 January

    Java LocalDate to Date

    In this post, we will see how to convert LocalDate to Date. Java 8 has introduced a lot of new APIs for Date and time. There can be many ways to convert Java LocalDateTime to date. Using Instant object You can convert LocalDate to Date using Instant object which we can from Zone. Here is […]

  • Convert Stream to List in java
    31 December

    Java Stream to List

    In this post, we will see how to convert Stream to List in java. There are multiple ways to convert Stream to List in java. Using Collectors.toList() You can pass Collectors.toList() to Stream.collect() method to convert Stream to List in java. Stream’s collect method performs mutable reduction operation on elements of Stream and Collectors.toList() provides […]

  • Convert LocalDateTime to Timestamp in java
    18 November

    Convert LocalDateTime to Timestamp in Java

    In this post, we will how to convert LocalDateTime to Timestamp . Before learning how to convert localdatetime to timestamp, let us learn about LocalDateTime and Timestamp, and understand the importance of this conversion. LocalDateTime LocalDateTime was introcuded in Java 8. LocalDateTime can be imported time package: import java.time.LocalDateTime; LocalDateTime is an immutable object used […]

  • 28 August

    A In-Depth guide to Java 8 Stream API

    In this post, we will see an in-depth overview of Java 8 streams with a lot of examples and exercises. Introduction You may think that Stream must be similar to InputStream or OutputStream, but that’s not the case. A Stream represents a sequence of elements supporting sequential and parallel aggregate operations. Stream does not store […]

  • Java Stream List to Map
    26 April

    Java Stream List to Map

    In this post, we will see how to convert List to Map using Stream in java 8. Collectors’s toMap() can be used with Stream to convert List to Map in java. Consider a class Named Movie which have 3 fields – id, name and genre [crayon-603a09d9055cb706972433/] Create a list of movies and convert with to […]

Leave a Reply

Your email address will not be published. Required fields are marked *

Subscribe to our newletter

Get quality tutorials to your inbox. Subscribe now.