Автор оригинала: 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() { MapsourceMap = 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() { MapsourceMap = createMap(); List targetList = new ArrayList<>(sourceMap.values()); }
И использование гуавы:
@Test public void givenUsingGuava_whenMapValuesConvertedToList_thenCorrect() { MapsourceMap = createMap(); List targetList = Lists.newArrayList(sourceMap.values()); }
4. Значения карты для установки
Наконец, давайте преобразуем значения карты в набор, используя обычную java:
@Test public void givenUsingCoreJava_whenMapValuesConvertedToS_thenCorrect() { MapsourceMap = createMap(); Set targetSet = new HashSet<>(sourceMap.values()); }
5. Заключение
Как вы можете видеть, все преобразования можно выполнить с помощью одной строки, используя только библиотеку стандартных коллекций Java.
Реализацию всех этих примеров и фрагментов кода можно найти в проекте GitHub – это проект на основе Maven, поэтому его должно быть легко импортировать и запускать как есть.