Рубрики
Без рубрики

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

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

Автор оригинала: Eugen Paraschiv.

1. Обзор

В этой короткой статье будет показано, как преобразовать значения Map в Массив, a List или Set , используя обычную Java, а также быстрый пример на основе Guava|/.

Эта статья является частью серии “Java – Back to Basic” здесь, на Baeldung.

Дальнейшее чтение:

Итерация по карте в Java

Разница между map() и flatMap()

Как хранить дубликаты ключей на карте в Java?

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

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

@Test
public void givenUsingCoreJava_whenMapValuesConvertedToArray_thenCorrect() {
    Map sourceMap = createMap();

    Collection 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 sourceMap = createMap();

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

И использование гуавы:

@Test
public void givenUsingGuava_whenMapValuesConvertedToList_thenCorrect() {
    Map sourceMap = createMap();

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

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

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

@Test
public void givenUsingCoreJava_whenMapValuesConvertedToS_thenCorrect() {
    Map sourceMap = createMap();

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

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

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

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