Array Java de ArrayList, ArrayList de Array

Hoje vamos aprender como criar uma matriz Java de ArrayList. Também aprenderemos como criar um ArrayList de elementos de matriz.

Matriz Java de ArrayList

Criar uma matriz de lista em Java não é complexo. Abaixo está um programa simples mostrando um exemplo de matriz Java de ArrayList.

import java.util.ArrayList;
import java.util.List;

public class JavaArrayOfArrayList {

	public static void main(String[] args) {
		List<String> l1 = new ArrayList<>();
		l1.add("1");
		l1.add("2");

		List<String> l2 = new ArrayList<>();
		l2.add("3");
		l2.add("4");
		l2.add("5");

		List<String>[] arrayOfList = new List[2];
		arrayOfList[0] = l1;
		arrayOfList[1] = l2;

		for (int i = 0; i < arrayOfList.length; i++) {
			List<String> l = arrayOfList[i];
			System.out.println(l);
		}

	}

}

Observe que não podemos usar genéricos ao criar a matriz porque o Java não suporta matrizes genéricas. Portanto, se tentarmos usar o código abaixo, ele produzirá um erro de tempo de compilação como “Não é possível criar uma matriz genérica de List<String>”.

List<String>[] arrayOfList = new List<String>[2];

ArrayList Java de Matriz

Também podemos criar uma matriz cujos elementos são uma lista. Abaixo está um exemplo simples mostrando como criar uma lista de elementos de matriz em Java.

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class JavaArrayListOfStringArray {

	public static void main(String[] args) {
		// Lista de matrizes de strings
		List list = new ArrayList();
		
		String[] arr1 = { "a", "b", "c" };
		String[] arr2 = { "1", "2", "3", "4" };
		list.add(arr1);
		list.add(arr2);
		// imprimindo lista de matrizes de strings no ArrayList
		for (String[] strArr : list) {
			System.out.println(Arrays.toString(strArr));
		}
	}

}

ArrayList Java de Array de Objetos

Se você não tem certeza sobre o tipo de objetos no array ou deseja criar um ArrayList de arrays que podem conter múltiplos tipos, então você pode criar um ArrayList de um array de objetos. Abaixo está um exemplo simples mostrando como criar ArrayList de arrays de objetos em java.

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class JavaArrayListOfObjectArray {

	public static void main(String[] args) {
		// lista de arrays de Objetos para conter diferentes tipos de array
		List list = new ArrayList();
		String[] arr1 = { "a", "b", "c" };
		String[] arr2 = { "1", "2", "3", "4" };

		JavaArrayListOfObjectArray aa = new JavaArrayListOfObjectArray();
		JavaArrayListOfObjectArray.A[] arr3 = { aa.new A("AA"), aa.new A("BB") };

		list.add(arr1);
		list.add(arr2);
		list.add(arr3);

		// a lista contém diferentes tipos de arrays de Objetos, vamos imprimi-los
		for (Object[] objArr : list) {
			System.out.println(Arrays.toString(objArr));

			// iterando sobre o array e realizando operações baseadas em seu tipo
			for (Object obj : objArr) {

				// usando a palavra-chave instanceof para encontrar o tipo de Objeto no array
				if (obj instanceof String) {
					// doSomethingForStringObject();
				} else if (obj instanceof JavaArrayListOfObjectArray.A) {
					// doSomethingForAObject();
				}
			}
		}
	}

	/**
	 * A sample class to use in arraylist of arrays
	 * 
	 * @author pankaj
	 * 
	 */
	public class A {
		private String name;

		public A(String n) {
			this.name = n;
		}

		public String getName() {
			return this.name;
		}

		@Override
		public String toString() {
			return "A.class::"+this.name;
		}
	}
}

Ao executar o programa acima, ele produz a seguinte saída.

[a, b, c]
[1, 2, 3, 4]
[A.class::AA, A.class::BB]

Isso é tudo para criar um Array de ArrayList e ArrayList de Array em Java.

Você pode conferir mais exemplos de java básico em nosso Repositório do GitHub.

Referência: Arrays Java

Source:
https://www.digitalocean.com/community/tutorials/java-array-of-arraylist-of-array