Convertendo entre uma matriz e uma lista em Java

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á.