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 и значениями — именами.