Sobes.tech
Назад к вопросам
Senior
13

Как сделать вывод номеров и построение Map за один стрим?

Компании, где спрашивали
ЦифровыеПривычки

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

sobes.tech AI

В Java Stream API можно одновременно вывести элементы и построить Map за один проход, используя метод peek для вывода и терминальный метод collect для сбора в Map. Например:

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

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

        Map<String, Integer> map = list.stream()
            .peek(s -> System.out.println("Элемент: " + s)) // выводим элемент
            .collect(Collectors.toMap(
                s -> s,          // ключ — сам элемент
                String::length   // значение — длина строки
            ));

        System.out.println("Map: " + map);
    }
}

Здесь peek позволяет выполнить побочное действие (вывод в консоль) без прерывания потока, а collect собирает элементы в Map. Таким образом, вывод и построение Map происходят за один стрим.