Sobes.tech
Junior

С какъв функционален интерфейс работим в метода map()?

sobes.tech AI

Отговор от AI

В метода map() на Java стриймовете работим с функционалния интерфейс java.util.function.Function.

// Пример за използване на Function в метода map()
import java.util.List;
import java.util.stream.Collectors;

List<String> words = List.of("hello", "world");

// Function<String, Integer> преобразува String в Integer
List<Integer> lengths = words.stream()
                             .map(s -> s.length()) // Ламбда изразът реализира Function<String, Integer>
                             .collect(Collectors.toList());

// Друг начин с използване на референция към метод
List<Integer> lengthsMethodRef = words.stream()
                                      .map(String::length) // Референцията към метод също реализира Function<String, Integer>
                                      .collect(Collectors.toList());

Интерфейсът Function<T, R> приема един аргумент от тип T и връща резултат от тип R. В контекста на map(), T е типът на елементите на входния стрийм, а R е типът на елементите на изходния стрийм.