Найти в Дзене
DEBAGanov

Java 1130. Для чего в стримах предназначены методы map() и mapToInt(), mapToDouble(), mapToLong()?

Методы map() и mapToInt(), mapToDouble(), mapToLong() в Java Stream API предназначены для трансформации элементов потока в другие значения. map() позволяет применить заданную функцию к каждому элементу потока и получить новый поток с результатами этой функции. Например, можно использовать map() для преобразования списка строк в список длин этих строк.

mapToInt(), mapToDouble() и mapToLong() используются для выполнения той же функции, но к элементам потока применяются специализированные функции, которые возвращают значения соответствующего примитивного типа данных. Эти методы могут быть полезны, если вы хотите произвести операции, которые работают только с конкретным типом данных.

Пример использования метода map() для преобразования списка строк в список длин этих строк:

List<String> myList = Arrays.asList("Java", "Stream", "API", "example");
List<Integer> result = myList.stream()
.map(x -> x.length())
.collect(Collectors.toList());

В результате получим список длин строк:

[4, 6, 3, 7]

Пример использования метода mapToInt() для преобразования списка чисел с плавающей точкой в список целых чисел:

List<Double> myList = Arrays.asList(3.14, 2.7, 1.618, 0.0);
List<Integer> result = myList.stream()
.mapToInt(Double::intValue)
.boxed()
.collect(Collectors.toList());

В результате получим список целых чисел:

[3, 2, 1, 0]

1606 вопрос-ответ по Java: https://github.com/DEBAGanov/interview_questions

Tелеграмм канал: https://t.me/DEBAGanov

Мое резюме: https://github.com/DEBAGanov