Sobes.tech
Назад к вопросам
Junior — Middle
90

Можно ли использовать метод collect для преобразования Stream в карту (Map)?

Ответ от нейросети

sobes.tech AI

Да, метод collect в Stream API Java можно использовать для преобразования потока в карту (Map). Для этого применяется коллектор Collectors.toMap(), который принимает функции для ключа и значения.

Пример:

import java.util.*;
import java.util.stream.*;

public class Example {
    public static void main(String[] args) {
        List<String> list = Arrays.asList("apple", "banana", "cherry");

        Map<String, Integer> map = list.stream()
            .collect(Collectors.toMap(
                s -> s,          // ключ — сама строка
                s -> s.length()   // значение — длина строки
            ));

        System.out.println(map); // {apple=5, banana=6, cherry=6}
    }
}

Важно, чтобы ключи были уникальными, иначе будет выброшено исключение. Если ключи могут повторяться, нужно использовать версию toMap с третьим параметром — функцией объединения.