Вебинары Разобраться в IT Реферальная программа Тесты
Программирование Аналитика Дизайн Маркетинг Управление проектами
25 Дек 2023
1 мин
76

Преобразование списка объектов в карту с использованием Java 8

Пройдите тест, узнайте какой профессии подходите

Часто при работе с Java возникает необходимость преобразовать список объектов в карту. До введения в Java 8 потоков и лямбда-выражений это делалось вручную

Часто при работе с Java возникает необходимость преобразовать список объектов в карту. До введения в Java 8 потоков и лямбда-выражений это делалось вручную через цикл for.

private Map<String, User> userMap(List<User> users) {
    final Map<String, User> userMap = new HashMap<>();
    for (final User user : users) {
        userMap.put(user.getName(), user);
    }
    return userMap;
}

В этом примере список пользователей преобразуется в карту, где ключом является имя пользователя, а значением — сам объект пользователя.

В Java 8 был представлен новый и более эффективный способ преобразования списка объектов в карту с использованием потоков и лямбда-выражений.

private Map<String, User> userMap(List<User> users) {
    return users.stream()
        .collect(Collectors.toMap(User::getName, Function.identity()));
}

В этом коде stream() преобразует список в поток, а collect() собирает его обратно в карту. Collectors.toMap() принимает два аргумента: функцию, которая определяет ключ, и функцию, которая определяет значение. В данном случае для ключа используется метод getName(), а для значения — Function.identity(), который просто возвращает сам объект.

Таким образом, преобразование списка объектов в карту в Java 8 становится более простым и эффективным благодаря использованию потоков и лямбда-выражений.

Добавить комментарий