Преобразование Map в List на Java — keySet, values и entrySet

Чтобы понять этот пример, нужно знать следующие темы:

  • Интерфейс Map в Java

  • HashMap в Java

  • Список (List) в Java

  • ArrayList в Java

Пример 1: Преобразование Map в List

import java.util.*;

public class MapList {

    public static void main(String[] args) {

        Map<Integer, String> map = new HashMap<>();
        map.put(1, "a");
        map.put(2, "b");
        map.put(3, "c");
        map.put(4, "d");
        map.put(5, "e");

        List<Integer> keyList = new ArrayList(map.keySet());
        List<String> valueList = new ArrayList(map.values());

        System.out.println("Key List: " + keyList);
        System.out.println("Value List: " + valueList);

    }
}

Вывод:

Key List: [1, 2, 3, 4, 5]
Value List: [a, b, c, d, e]

В программе выше у нас есть map типа Integer и String с именем map. Поскольку map содержит пары ключ-значение, нам нужно два списка, чтобы хранить каждый из них, а именно keyList для ключей и valueList для значений.

Мы использовали метод keySet() map, чтобы получить все ключи, и создали из них ArrayList keyList. Аналогично мы использовали метод values() map, чтобы получить все значения, и создали из них ArrayList valueList.

Пример 2: Преобразование Map в List с помощью stream

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

public class MapList {

    public static void main(String[] args) {

        Map<Integer, String> map = new HashMap<>();
        map.put(1, "a");
        map.put(2, "b");
        map.put(3, "c");
        map.put(4, "d");
        map.put(5, "e");

        List<Integer> keyList = map.keySet().stream().collect(Collectors.toList());
        List<String> valueList = map.values().stream().collect(Collectors.toList());

        System.out.println("Key List: " + keyList);
        System.out.println("Value List: " + valueList);

    }
}

Вывод программы такой же, как в Примере 1.

В программе выше вместо использования конструктора ArrayList мы использовали stream(), чтобы преобразовать map в список.

Мы преобразовали ключи и значения в поток и преобразовали его в список с помощью метода collect(), передавая toList() в качестве параметра.