«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, поэтому его должно быть легко импортировать и запускать как есть.