Java – Преобразование карты в массив, список или набор

В этом руководстве по Java будет показано, как преобразовать ключи и значения Map в массив, список или набор. Карты Java представляют собой коллекцию пар ключ-значение. Ключи Map всегда уникальны, но могут иметь повторяющиеся значения.

1. Преобразовать карту в массив

Для демонстрационных целей давайте создадим карту со строковыми ключами и целочисленными значениями.

Map<String, Integer> map = Map.of("A",1, "B", 2, "C", 3);

Map.values() возвращает представление коллекции значений, содержащихся в этой карте. Используйте Collection.toArray() для получения массива из элементов коллекции. Этот метод принимает тип времени выполнения возвращаемого массива.

Collection<Integer> values = map.values();Integer valArray[] = values.toArray(new Integer[0]);

Аналогично мы можем собрать ключи Map в массив. Map.keyset() возвращает Set всех ключей в Map. Используя Set.toArray(), мы можем преобразовать его в массив строк.

String keyArray[] = map.keySet().toArray(new String[0]);

2. Преобразовать карту в список

Мы можем собрать значения Map в список, используя конструктор ArrayList, который принимает коллекцию значений в качестве параметра.

List<Integer> valList = new ArrayList<>(map.values());

Для достижения того же результата можно использовать Java Streams.

List<Integer> listOfValues = map.values().stream().collect(Collectors.toCollection(ArrayList::new));

Аналогично мы можем преобразовать ключи Map в List, используя простую Java и Streams.

List<String> keyList = new ArrayList<>(map.keySet()); //ArrayList ConstructorList<String> listOfKeys = map.keySet().stream().collect(Collectors.toCollection(ArrayList::new)); //Streams

3. Преобразовать карту в набор

Мы можем использовать конструктор HashSet или Streams для преобразования значений Map в Set.

Set<Integer> valSet = new HashSet<>(map.values()); //HashSet ConstructorSet<Integer> setOfValues = map.values().stream().collect(Collectors.toCollection(HashSet::new)); //using Streams

Map.keySet() возвращает представление Set всех ключей в Map.

Set<String> keySet = map.keySet();

4. Заключение

В этом уроке мы научились конвертировать ключи и значения Java Map в массив, список или набор с простыми примерами. Мы научились использовать конструкторы ArrayList и HashSet, а также API потоков.

Приятного обучения!!

Прокрутить вверх