Sobes.tech
Back to questions
Junior — Middle
57

Каким образом можно получить поток элементов из коллекции в виде Map с помощью Stream API?

Answer from AI

sobes.tech AI

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

Пример: есть список объектов Person, и нужно получить Map, где ключ — это ID, а значение — имя.

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

class Person {
    private int id;
    private String name;

    public Person(int id, String name) {
        this.id = id;
        this.name = name;
    }

    public int getId() { return id; }
    public String getName() { return name; }
}

public class Example {
    public static void main(String[] args) {
        List<Person> people = Arrays.asList(
            new Person(1, "Alice"),
            new Person(2, "Bob"),
            new Person(3, "Charlie")
        );

        Map<Integer, String> idToName = people.stream()
            .collect(Collectors.toMap(Person::getId, Person::getName));

        System.out.println(idToName);
    }
}

В результате получится Map с ключами — ID и значениями — именами.