{"id":4162,"date":"2017-10-15T00:44:37","date_gmt":"2017-10-14T19:14:37","guid":{"rendered":"https:\/\/www.java2blog.com\/?p=4162"},"modified":"2021-05-09T11:03:59","modified_gmt":"2021-05-09T05:33:59","slug":"java-8-stream-map","status":"publish","type":"post","link":"https:\/\/java2blog.com\/java-8-stream-map\/","title":{"rendered":"Java 8 Stream Map"},"content":{"rendered":"<div id=\"toc_container\" class=\"toc_light_blue no_bullets\"><p class=\"toc_title\">Table of Contents<\/p><ul class=\"toc_list\"><li><a href=\"#Java_8_Stream_Map_function\">Java 8 Stream Map function<\/a><\/li><li><a href=\"#Java_8_Stream_Map_example\">Java 8 Stream Map example<\/a><\/li><li><a href=\"#Another_example\">Another example<\/a><\/li><\/ul><\/div>\n<p>In this post, we will see about <a href=\"https:\/\/java2blog.com\/java-8-stream\/\" target=\"_blank\" rel=\"noopener noreferrer\">Java 8 Stream<\/a> map function.<\/p>\n<p><a href=\"https:\/\/java2blog.com\/java-8-stream\/\" target=\"_blank\" rel=\"noopener noreferrer\">stream<\/a>&#8216;s map method takes single element from input stream and produces single element to output stream. Type of Single input Stream and Output stream can differ.<\/p>\n<h2><span id=\"Java_8_Stream_Map_function\"><span style=\"color: #333300;\">Java 8 Stream Map function<\/span><\/span><\/h2>\n<pre class=\"java\" name=\"code\">&lt;R&gt; Stream&lt;R&gt; map(Function&lt;? super T,? extends R&gt;mapper)\n<\/pre>\n<p>Map function returns a stream consisting of the results of applying the given function to the elements of this stream.<br \/>\nFunction is a <a href=\"https:\/\/www.java2blog.com\/java-8-functional-interface-example\/\">functional interface<\/a> available in Java 8 java.util.function.Function accepts one input and produce a result.<\/p>\n<p>Few important points about Map<\/p>\n<ul>\n<li>Map is intermediate operation and returns stream as a result.<\/li>\n<li>Map operation takes <a href=\"https:\/\/java2blog.com\/java-8-function-example\/\" rel=\"noopener noreferrer\" target=\"_blank\">Function<\/a> as parameter and this function is called on each element of the stream.<\/li>\n<li>Map() method is used to convert <code>Stream<T><\/code> to <code>Stream<R><\/code><\/li>\n<li>You can also use map method to convert it from <code>Stream<T><\/code> to <code>Stream<T><\/code>.<br \/>\n            <strong>For example:<\/strong> Calling <code>toUppercase() <\/code>method in Map method which will again return Stream<String>.<\/li>\n<\/ol>\n<p><span style=\"color: #f89820;\">Let&#8217;s understand with the help of a simple example.<\/span><\/p>\n<h2><span id=\"Java_8_Stream_Map_example\"><span style=\"color: #333300;\">Java 8 Stream Map example<\/span><\/span><\/h2>\n<p>Let&#8217;s say you have a list of employees, now you want to convert it to list of employee names, so you will map each employee object to employee name.<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone wp-image-4164 size-full\" src=\"https:\/\/www.java2blog.com\/wp-content\/uploads\/2017\/10\/Java8StreamMap.png\" alt=\"Java 8 Stream map\" width=\"652\" height=\"104\" srcset=\"https:\/\/java2blog.com\/wp-content\/uploads\/2017\/10\/Java8StreamMap.png 652w, https:\/\/java2blog.com\/wp-content\/uploads\/2017\/10\/Java8StreamMap-300x48.png 300w\" sizes=\"(max-width: 652px) 100vw, 652px\" \/><\/p>\n<p>You will give input as Stream of employee objects and get an output as Stream of String.<\/p>\n<p>1. Create a class named <code>Employee.java<\/code><\/p>\n<pre class=\"java\" name=\"code\">package org.arpit.java2blog.map;\n\npublic class Employee {\n\n    String name;\n    int age;\n\n    public Employee(String name, int age) {\n        super();\n        this.name = name;\n        this.age = age;\n    }\n\n    public String getName() {\n        return name;\n    }\n    public void setName(String name) {\n        this.name = name;\n    }\n    public int getAge() {\n        return age;\n    }\n    public void setAge(int age) {\n        this.age = age;\n    }\n}\n<\/pre>\n<p>2. Create main class named <code>Java8StreamMapMain.java<\/code><\/p>\n<pre class=\"java\" name=\"code\" mark=\"15-17\">package org.arpit.java2blog.map;\n\nimport java.util.ArrayList;\nimport java.util.List;\nimport java.util.stream.Collectors;\n\npublic class Java8StreamMapMain {\n\n    public static void main(String args[])\n    {\n        List&lt;Employee&gt; listOfEmployees = createListOfEmployees();\n\n        \/\/ Using map function to convert Stream&lt;Employee&gt; to Stream&lt;Stream&gt;\n        List&lt;String&gt; listOfEmployeeNames=listOfEmployees.stream()\n                                        .map(e -&gt; e.getName()) \n                                        .collect(Collectors.toList());\n        listOfEmployeeNames.forEach(System.out::println);\n    }       \n\n    public static List&lt;Employee&gt; createListOfEmployees()\n    {\n        List&lt;Employee&gt; listOfEmployees=new ArrayList&lt;&gt;();\n        Employee emp1= new Employee(\"John\",20);\n        Employee emp2= new Employee(\"Martin\",20);\n        Employee emp3= new Employee(\"Mary\",20);\n        Employee emp4= new Employee(\"Steve\",20);\n        listOfEmployees.add(emp1);\n        listOfEmployees.add(emp2);\n        listOfEmployees.add(emp3);\n        listOfEmployees.add(emp4);\n        return listOfEmployees;\n    }\n}\n<\/pre>\n<p>When you run above program, you will get below output:<\/p>\n<div class=\"content-box-green\">John<br \/>\nMartin<br \/>\nMary<br \/>\nSteve<\/div>\n<p>Here is logical representation of above program.<br \/>\n<img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/java2blog.com\/wp-content\/uploads\/2017\/10\/MapEmployee-1024x311.jpg\" alt=\"MapEmployee\" width=\"900\" height=\"272\" class=\"aligncenter size-large wp-image-9733\" srcset=\"https:\/\/java2blog.com\/wp-content\/uploads\/2017\/10\/MapEmployee-1024x311.jpg 1024w, https:\/\/java2blog.com\/wp-content\/uploads\/2017\/10\/MapEmployee-300x91.jpg 300w, https:\/\/java2blog.com\/wp-content\/uploads\/2017\/10\/MapEmployee-768x233.jpg 768w, https:\/\/java2blog.com\/wp-content\/uploads\/2017\/10\/MapEmployee.jpg 1982w\" sizes=\"(max-width: 900px) 100vw, 900px\" \/><br \/>\nYou can use <a href=\"https:\/\/java2blog.com\/java-8-method-reference\/\" rel=\"noopener noreferrer\" target=\"_blank\">method reference<\/a> to at line no.17 as below<\/p>\n<pre class=\"java\" name=\"code\">List&lt;String&gt; listOfEmployeeNames=listOfEmployees.stream()\n                                        .map(Employee::getName) \n                                        .collect(Collectors.toList());\n<\/pre>\n<h2><span id=\"Another_example\"><span style=\"color: #333300;\"><strong>Another example<\/strong><\/span><\/span><\/h2>\n<p>Let&#8217;s say you have list of integers and you want to find sum of double of even numbers.<\/p>\n<pre class=\"java\" name=\"code\">package org.arpit.java2blog.map;\n\nimport java.util.Arrays;\nimport java.util.List;\n\npublic class Java8StreamMapNumber {\n\n    public static void main(String[] args)\n    {\n        List&lt;Integer&gt; listOfNumbers=Arrays.asList(1,2,3,4,5,6,7,8,9,10);\n\n        int sum= listOfNumbers.stream()\n                .filter(n -&gt; n%2==0)\n                .map(n -&gt; n*2)\n                .reduce(0, Integer::sum);\n        System.out.println(sum);\n\n    }\n}\n<\/pre>\n<p>When you run above program, you will get below output:<\/p>\n<div class=\"content-box-purple\">60<\/div>\n<p>If you notice, we have used map function to double of input number in above example.<\/p>\n<p>That&#8217;s all about <a href=\"https:\/\/java2blog.com\/java-8-stream\/\" target=\"_blank\" rel=\"noopener noreferrer\">Java 8 Stream<\/a> map example.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Table of ContentsJava 8 Stream Map functionJava 8 Stream Map exampleAnother example In this post, we will see about Java 8 Stream map function. stream&#8216;s map method takes single element from input stream and produces single element to output stream. Type of Single input Stream and Output stream can differ. Java 8 Stream Map function [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":12606,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"_mi_skip_tracking":false},"categories":[36,213],"tags":[],"_links":{"self":[{"href":"https:\/\/java2blog.com\/wp-json\/wp\/v2\/posts\/4162"}],"collection":[{"href":"https:\/\/java2blog.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/java2blog.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/java2blog.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/java2blog.com\/wp-json\/wp\/v2\/comments?post=4162"}],"version-history":[{"count":0,"href":"https:\/\/java2blog.com\/wp-json\/wp\/v2\/posts\/4162\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/java2blog.com\/wp-json\/wp\/v2\/media\/12606"}],"wp:attachment":[{"href":"https:\/\/java2blog.com\/wp-json\/wp\/v2\/media?parent=4162"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/java2blog.com\/wp-json\/wp\/v2\/categories?post=4162"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/java2blog.com\/wp-json\/wp\/v2\/tags?post=4162"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}