ArrayList de ArrayList

4 respostas
A
Tenho uma dúvida de ArrayList de ArrayList. Consigo criar um ArrayList de ArrayList mas não astou acertando recuperar as entradas. Peço ajuda, por favor.

public static void main(String[] args) {

int tamln;

ArrayList<ArrayList>elems = new ArrayList<ArrayList>();

ArrayList elem = new ArrayList();

int tamCol;

tamCol =(int)(Math.random()<em>(15)+5);

System.out.println(tamCol+"  Elementos");

for (int k=0;k<tamCol;k++){		

elem.clear();

tamln = (int)(Math.random()</em>(10)+1);

for(int j=0;j<tamln;j++)

elem.add(j+1);

elems.add(elem);		

System.out.printf("%s %d",Elemento  ,k+1);

for(Iterator it=elem.iterator();it.hasNext();){			

System.out.printf(%s %4d,"  ",it.next());
}
	System.out.println("");					
	}
	
	for(Iterator<ArrayList<Integer>>it1=elems.iterator();it1.hasNext();){
		for(Iterator<Integer> it2= it1.next().iterator();it2.hasNext();){
			
			System.out.printf("%3d",it2.next());				
		}
		System.out.println("");
	}
	
	
}

}

4 Respostas

M

Bem vindo ao fórum!

Antes de mais nada, sempre que for postar seu código, coloque-o entre as tags e , assim:

System.out.println("Olá mundo");

Fazendo assim ele ficará formatado (não ficou aqui porque desativei as tags). Além disso, se o problema foi resolvido, não custa nada colocar um [RESOLVIDO] no título do tópico.

M

Quanto à questão, experimente esta classe:

public class ListList {

	public static void main(String[] args) {
		mostraMatriz(criaMatriz());
	}

	private static List<ArrayList<Integer>> criaMatriz() {
		int numeroLinhas = (int) (Math.random() * (15) + 5);
		System.out.println(numeroLinhas + " linhas");
		List<ArrayList<Integer>> matriz = new ArrayList<ArrayList<Integer>>();
		for (int i = 0; i < numeroLinhas; i++) {
			ArrayList<Integer> linha = new ArrayList<Integer>();
			int numeroColunas = (int) (Math.random() * (10) + 1);
			for (int j = 0; j < numeroColunas; j++) {
				linha.add(j + 1);
			}
			matriz.add(linha);
		}
		return matriz;
	}

	private static void mostraMatriz(List<ArrayList<Integer>> matriz) {
		for (ArrayList<Integer> linha : matriz) {
			for (int valor : linha) {
				System.out.print(valor + "\t");
			}
			System.out.println();
		}
	}

}

Procure entendê-la. Qualquer dúvida, poste aqui.

M

No exemplo acima eu fiz uma analogia à uma matriz matemática e, para ficar claro, segui a nomenclatura usada na matemática.

A

Ok!Amigo, muitíssimo obrigado.

Criado 20 de janeiro de 2010
Ultima resposta 20 de jan. de 2010
Respostas 4
Participantes 2