Skip to main content

Java 8 Stream Map() Method With Examples | Programming Blog

Java 8 Stream API Map Method with Examples
Map() Method in Java 8 Stream Api

What is Map() Function in Java 8 | Java 8 Map method

In java 8, map is also very useful method like filter(), collect() and reduce() method.

What is map() function in Java?

Returns a stream consisting of the results of applying the given function to the element of this function. map() function is in java.util.stream package.

In simple word, map() method is used to transform one object into another by applying a function.

So map() method takes a function as an argument.

Stream.map(Function arg)

map() function provides intermediate operation. Intermediate operation are lazy operation. it does not apply until you apply terminal operations like, forEach() or collect() methods. map() function invoked on a stream instance and after finish their processing, they give stream instance as output.

Before java 8, if we want to convert List of String into upperCase or lowerCase or String of list to int then we have to write for loop but using map() function we can easily get uppercase or lowercase output from String.

So lets see simple example of that first. 

Example 1 :- Convert list of string into UpperCase and LoweCase using map function

public class MapMethod {

    public static void main(String[] args) {
       
        List<String> list = Arrays.asList("Java", "Python", "JavaScript", "Html", "Css");
       
        // Convert list of String in uppercase using map and 
        // store into list using collect(terminal operation)
        List<String> upperCase = list.stream()
            .map(language -> language.toUpperCase())
            .collect(Collectors.toList());
           
        System.out.println(upperCase);
       
        // Convert list ofString in lowercase using map and
        // print in each line using forEach.
        list.stream()
            .map(language -> language.toLowerCase())
            .forEach(System.out::println);
       
    }

}

Output :-
[JAVA, PYTHON, JAVASCRIPT, HTML, CSS]
java
python
javascript
html
css

In above example first we done upperCase all list of string using map and store into List using collect() method. In second code script we done lowerCase on List of string using map() and print all string into new line using forEach() method. Here, collect() and forEach() method is terminal operation as we seen and map is intermediate operation.

So you can see how easily we can done kind of operation using map() function.

Example 2 :- Convert string of list to numbers (in integer)

public class MapMethod {

    public static void main(String[] args) {
       
        // Convert list of String to Integer
        List<String> list = Arrays.asList("1", "2", "3", "4", "5","6");
       
        List<Integer> numbers = list.stream()
                .map(string -> Integer.valueOf(string))
                .collect(Collectors.toList());
       
        System.out.println(numbers);

    }

}

Output :-
[1, 2, 3, 4, 5, 6]

We can also done another things like get even or odd number in above function. so lets see example of that.

Example 3 :- Convert list of string into integer and filter even number (Stream map + filter)

public class MapMethod {

    public static void main(String[] args) {
       
        // Convert list of String to Integer
        List<String> list = Arrays.asList("1", "2", "3", "4", "5","6");
       
        List<Integer> numbers = list.stream()
                .map(string -> Integer.valueOf(string))
                .filter(number -> number % 2 == 0)
                .collect(Collectors.toList());
       
        System.out.println(numbers);

    }

}

Output :
[2, 4, 6]

In above example, we use map() function with filter() function that is also part of java 8 Stream API.

Happy Reading. Happy Coding.

If you want to learn about another Java 8 methods then read following article :-


Comments

Popular posts from this blog

Queen's Attack II HackerRank Solution in Java with Explanation

Queen's Attack II Problem's Solution in Java (Chessboard Problem)   Problem Description : You will be given a square chess board with one queen and a number of obstacles placed on it. Determine how many squares the queen can attack.  A queen is standing on an n * n chessboard. The chess board's rows are numbered from 1 to n, going from bottom to top. Its columns are numbered from 1 to n, going from left to right. Each square is referenced by a tuple, (r, c), describing the row r and column c, where the square is located. The queen is standing at position (r_q, c_q). In a single move, queen can attack any square in any of the eight directions The queen can move: Horizontally (left, right) Vertically (up, down) Diagonally (four directions: up-left, up-right, down-left, down-right) The queen can move any number of squares in any of these directions, but it cannot move through obstacles. Input Format : n : The size of the chessboard ( n x n ). k : The number of obstacles...

Java Hashset HackerRank Solution | Programming Blog

Java Hashset HackerRank Solution with Explanation   Problem Statement :- In computer science, a set is an abstract data type that can store certain values, without any particular order, and no repeated values. {1,2,3} is an example of a set, but {1,2,2} is not a set. Today you will learn how to use sets in java by solving this problem. You are given n pairs of strings. Two pairs (a,b) and (c,d) are identical if a = c and b = d. That also implies (a,b) is not same as (b,a). After taking each pair as input, you need to print number of unique pairs you currently have. See full problem description in HackerRank Website :- https://www.hackerrank.com/challenges/java-hashset/problem Let's see solution of problem. import java.util.HashSet; import java.util.Scanner; public class Solution {     public static void main(String[] args) {         Scanner s = new Scanner(System.in);         System.out.println("Enter tot...