In Java 8, map()
is a method of the Stream
interface used for transforming each element in a stream. It applies a given function to every element and returns a new stream with the transformed values.
Example 1: Convert a List of Integers to Their Squares
import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; public class MapExample { public static void main(String[] args) { List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5); // Using map() to square each number List<Integer> squaredNumbers = numbers.stream() .map(n -> n * n) .collect(Collectors.toList());
Example 2: Convert a List of Strings to Uppercase
import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; public class StringMapExample { public static void main(String[] args) { List<String> names = Arrays.asList("java", "stream", "lambda"); // Convert all names to uppercase List<String> upperCaseNames = names.stream() .map(String::toUpperCase) .collect(Collectors.toList()); // Using method reference System.out.println(upperCaseNames); // Output: [JAVA, STREAM, LAMBDA] } }
Example 2.1:
package com.learnwithrup; import java.util.Arrays; import java.util.List; /** * Demonstrates usage of Java Stream API to convert a list of strings to * uppercase. */ public class Test { /** * Main method to execute the example. * * @param args command line arguments */ public static void main(String[] args) { List<String> names = Arrays.asList("java", "python", "go"); List<String> upperCaseNames1 = names.stream() .map(lang -> lang.toUpperCase()).toList(); // Using java 17 toList() method. List<String> upperCaseNames2 = names.stream().map(lang -> { return lang.toUpperCase(); }).toList(); // Using multiple line in map() method. System.out.println(upperCaseNames1); System.out.println(upperCaseNames2); } }
Output:
Method 1- [JAVA, PYTHON, GO]
Method 2- [JAVA, PYTHON, GO]
Key Points About map()
in Stream API
✅ It is used for data transformation (e.g., modifying or converting objects).
✅ It does not modify the original collection; it creates a new stream.
✅ It is an intermediate operation (must be followed by a terminal operation like collect()
).
✅ It can work with different data types, converting one type to another.