Convertendo entre uma matriz e uma lista em Java
1. Visão geral
Este artigo rápido mostrará comoconvert between an Array and a List usando as principais bibliotecas Java, Guava ou Apache Commons Collections.
Este artigo faz parte dethe “Java – Back to Basic” series aqui no exemplo.
2. ConverterList em Array
2.1. Usando Plain Java
Vamos começar com a conversão deList para Arrayusing plain java:
@Test
public void givenUsingCoreJava_whenListConvertedToArray_thenCorrect() {
List sourceList = Arrays.asList(0, 1, 2, 3, 4, 5);
Integer[] targetArray = sourceList.toArray(new Integer[sourceList.size()]);
}
2.2. Usando goiaba
Agora vamos usarthe Guava API para a mesma conversão:
@Test
public void givenUsingGuava_whenListConvertedToArray_thenCorrect() {
List sourceList = Lists.newArrayList(0, 1, 2, 3, 4, 5);
int[] targetArray = Ints.toArray(sourceList);
}
3. Converter matriz emList
3.1. Usando Plain Java
Vamos começar com a solução Java simples para converter a matriz emList:
@Test
public void givenUsingCoreJava_whenArrayConvertedToList_thenCorrect() {
Integer[] sourceArray = { 0, 1, 2, 3, 4, 5 };
List targetList = Arrays.asList(sourceArray);
}
Observe que esta é uma lista de tamanho fixo que ainda será apoiada pela matriz. Se você deseja umArrayList padrão, pode simplesmente instanciar um da seguinte forma:
List targetList = new ArrayList(Arrays.asList(sourceArray));
3.2. Usando goiaba
Agora vamos usarthe Guava API para a mesma conversão:
@Test
public void givenUsingGuava_whenArrayConvertedToList_thenCorrect() {
Integer[] sourceArray = { 0, 1, 2, 3, 4, 5 };
List targetList = Lists.newArrayList(sourceArray);
}
3.3. Usando coleções comuns
E, finalmente, vamos usar a APIApache Commons Collections -CollectionUtils.addAll para preencher os elementos da matriz em uma lista vazia:
@Test
public void givenUsingCommonsCollections_whenArrayConvertedToList_thenCorrect() {
Integer[] sourceArray = { 0, 1, 2, 3, 4, 5 };
List targetList = new ArrayList<>(6);
CollectionUtils.addAll(targetList, sourceArray);
}
4. Conclusão
A implementação de todos esses exemplos e trechos de códigocan be found over on GitHub - este é um projeto baseado em Maven, portanto, deve ser fácil de importar e executar como está.