«1. Обзор

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

Эта статья является частью серии «Java — Back to Basic» здесь, на Baeldung.

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

Во-первых, давайте посмотрим на преобразование значений Map в массив с помощью простого 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. Map Values ​​to List

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

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

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

И используя Guava:

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

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

4. Map Значения для установки

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

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

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

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

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

Реализацию всех этих примеров и фрагментов кода можно найти в проекте GitHub — это проект на основе Maven, поэтому его должно быть легко импортировать и запускать как есть.