Метод map
Метод map преобразует каждый элемент потока в другой объект с помощью переданной функции.
В параметр метода мы передаем функцию-преобразователь типа Function, которая принимает
один элемент потока и возвращает результат его преобразования. Метод возвращает новый поток,
состоящий из преобразованных элементов. Исходный поток при этом не изменяется.
Синтаксис
stream.map(function)
Пример
Давайте возведем каждое число потока в квадрат:
import java.util.List;
import java.util.stream.Collectors;
public class Main
{
public static void main(String[] args)
{
List<Integer> res = List.of(1, 2, 3, 4, 5)
.stream()
.map(n -> n * n)
.collect(Collectors.toList());
System.out.println(res);
}
}
Результат выполнения кода:
[1, 4, 9, 16, 25]
Пример
Давайте преобразуем каждую строку потока в ее длину:
import java.util.List;
import java.util.stream.Collectors;
public class Main
{
public static void main(String[] args)
{
List<String> list = List.of("abcde", "ab", "abc");
List<Integer> res = list
.stream()
.map(s -> s.length())
.collect(Collectors.toList());
System.out.println(res);
}
}
Результат выполнения кода:
[5, 2, 3]
Пример
Давайте преобразуем каждую строку потока в верхний регистр:
import java.util.List;
import java.util.stream.Collectors;
public class Main
{
public static void main(String[] args)
{
List<String> res = List.of("abcde", "12345")
.stream()
.map(s -> s.toUpperCase())
.collect(Collectors.toList());
System.out.println(res);
}
}
Результат выполнения кода:
[ABCDE, 12345]