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

1. Общий обзор

В этой короткой статье будет показано, как преобразовать значения map в массив, список или набор, используя обычный Java, а также краткий пример на основе Guava.

 В этой короткой статье будет показано, как преобразовать значения map в массив, список или набор, используя обычный Java, а также краткий пример на основе Guava.

2. Сопоставление значений с массивом

Сначала давайте рассмотрим преобразование значений карты в массив, используя обычный java:

@Test
public void givenUsingCoreJava_whenMapValuesConvertedToArray_thenCorrect() {
Map<Integer, String> sourceMap = createMap();

Collection<String> values = sourceMap.values();
String[] targetArray = values.toArray(new String[0]);
}

Обратите внимание, что toArray(new T[0]) является предпочтительным способом использования метода по сравнению с toArray(new T[size]).

3. Сопоставьте значения со списком

Далее, давайте преобразуем значения карты в список, используя обычный Java:

@Test
public void givenUsingCoreJava_whenMapValuesConvertedToList_thenCorrect() {
Map<Integer, String> sourceMap = createMap();

List<String> targetList = new ArrayList<>(sourceMap.values());
}

И используя гуаву:

@Test
public void givenUsingGuava_whenMapValuesConvertedToList_thenCorrect() {
Map<Integer, String> sourceMap = createMap();

List<String> targetList = Lists.newArrayList(sourceMap.values());
}

4. Установка значения map для установки

Наконец, давайте преобразуем значения map в набор, используя обычный java:

@Test
public void givenUsingCoreJava_whenMapValuesConvertedToS_thenCorrect() {
Map<Integer, String> sourceMap = createMap();

Set<String> targetSet = new HashSet<>(sourceMap.values());
}

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

Как вы можете видеть, все преобразования можно выполнить с помощью одной строки, используя только библиотеку Java standard collections.

Оригинал статьи: https://www.baeldung.com/convert-map-values-to-array-list-set