junior
Для чего в стримах предназначены методы map, mapToInt, mapToDouble, mapToLong?
map() — промежуточная операция, которая преобразует каждый элемент стрима с помощью заданной функции. Результат map() — новый стрим с преобразованными элементами.
mapToInt(), mapToDouble(), mapToLong() — специализированные аналоги map(), которые возвращают примитивный стрим (IntStream, DoubleStream, LongStream). Их основное преимущество — отсутствие автобоксинга и доступ к дополнительным методам (sum(), average(), max(), min()).
Пример
Stream.of("12", "22", "4", "444", "123")
.mapToInt(Integer::parseInt)
.toArray(); // [12, 22, 4, 444, 123]
Обратное преобразование из примитивного стрима в объектный выполняется методом mapToObj() или boxed().
На собеседовании: подчеркните, что
mapToIntвозвращаетIntStream, а неStream<Integer>, и объясните выгоду: нет autoboxing и доступны агрегатные методы вродеsum().