1. Обзор
Эта короткая статья покажет, как преобразовать значения карты
в массив,
список или набор , используя
простую
Java, а также быстрый пример на основе Guava .
Эта статья является частью серии «Java — Back to Basic» здесь, на ForEach.
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. Сопоставьте значения для установки
Наконец, давайте преобразуем значения карты в набор, используя простой java:
@Test
public void givenUsingCoreJava_whenMapValuesConvertedToS_thenCorrect() {
Map<Integer, String> sourceMap = createMap();
Set<String> targetSet = new HashSet<>(sourceMap.values());
}
5. Вывод
Как видите, все преобразования можно выполнить одной строкой, используя только стандартную библиотеку коллекций Java.
Реализацию всех этих примеров и фрагментов кода можно найти в проекте GitHub — это проект на основе Maven, поэтому его легко импортировать и запускать как есть.