Методы 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