Converter um mapa em uma matriz, lista ou conjunto em Java
1. Visão geral
Este breve artigo mostrará comoconvert the values of a Map to an Array, a List or a Set usando Java simples, bem como um exemplo rápido baseado emGuava.
Este artigo faz parte dethe “Java – Back to Basic” series aqui no exemplo.
Leitura adicional:
Iterar sobre um mapa em Java
Aprenda maneiras diferentes de iterar através das entradas de um mapa em Java.
A diferença entre map () e flatMap ()
Aprenda sobre as diferenças entre map () e flatMap () analisando alguns exemplos de Streams e Opcionais.
Como armazenar chaves duplicadas em um mapa em Java?
Um guia rápido e prático para lidar com chaves duplicadas usando multimaps em Java.
2. Valores do mapa para matriz
Primeiro, vamos ver como converter os valores do Mapa em uma matriz,using plain java:
@Test
public void givenUsingCoreJava_whenMapValuesConvertedToArray_thenCorrect() {
Map sourceMap = createMap();
Collection values = sourceMap.values();
String[] targetArray = values.toArray(new String[values.size()]);
}
3. Valores do mapa para a lista
A seguir, vamos converter os valores de um mapa em uma lista - usando Java simples:
@Test
public void givenUsingCoreJava_whenMapValuesConvertedToList_thenCorrect() {
Map sourceMap = createMap();
List targetList = new ArrayList<>(sourceMap.values());
}
E usando o Goiaba:
@Test
public void givenUsingGuava_whenMapValuesConvertedToList_thenCorrect() {
Map sourceMap = createMap();
List targetList = Lists.newArrayList(sourceMap.values());
}
4. Valores do mapa para definir
Finalmente, vamos converter os valores do Mapa em um Conjunto, usando java simples:
@Test
public void givenUsingCoreJava_whenMapValuesConvertedToS_thenCorrect() {
Map sourceMap = createMap();
Set targetSet = new HashSet<>(sourceMap.values());
}
5. Conclusão
Como você pode ver, todas as conversões podem ser feitas com uma única linha, usando apenas a biblioteca de coleções padrão Java.
A implementação de todos esses exemplos e trechos de códigocan be found over on GitHub project - este é um projeto baseado em Maven, portanto, deve ser fácil de importar e executar como está.