Problema no armazenamento em ArrayList

0 respostas
M

Olá a todos,

estou desenvolvendo um programa que cria um grafo de todos os estados possíveis para um jogo da velha. No decorrer do desenvolvimento estou com o seguinte código:
int[] elemento = new int[9];
    	List<Aresta> ars = new ArrayList<Aresta>();
    	List<Elemento> estagios = new ArrayList<Elemento>();
        
        int i = 0;
    	//Cria todos os elementos possíveis
    	for(int um = -1; um < 2; um++){
    		for(int dois = -1; dois < 2; dois++){
    			for(int tres = -1; tres < 2; tres++){
    				for(int quatro = -1; quatro < 2; quatro++){
    					for(int cinco = -1; cinco < 2; cinco++){
    						for(int seis = -1; seis < 2; seis++){
    							for(int sete = -1; sete < 2; sete++){
    								for(int oito = -1; oito < 2; oito++){
    									for(int nove = -1; nove < 2; nove++){
    										elemento[0] = um;
    										elemento[1] = dois;
    										elemento[2] = tres;
    										elemento[3] = quatro;
    										elemento[4] = cinco;
    										elemento[5] = seis;
    										elemento[6] = sete;
    										elemento[7] = oito;
    										elemento[8] = nove;
                                                                                Elemento e = new Elemento(elemento);
    										estagios.add(e);
                                                                                if(i > 1200)
                                                                                        System.out.println(estagios.get(6) +"\n"+ estagios.get(7));
                                                                                //System.out.println(e.toString());
                                                                                System.out.println(estagios.get(i)+" , valor de i= "+ i+"\n");
                                                                                i++;
                                                                                
                                                                        }
    								}
    							}
    						}
    					}
    				}
    			}
    		}
    	}

Todos os elementos de impressão acima são apenas para que eu possa testar e ver se os elementos estão sendo gravados de forma correta no arraylist, o problema é que os elementos estão sendo gerados corretamente, porém, ao amazenar no arraylist, todos os elementos deste estão sendo gravados como o último elemento que entrou. Por exemplo, segue um trecho da impressão gerada por este código:

(1,1,1,1,1,1,1,1,-1)
(1,1,1,1,1,1,1,1,-1)
(1,1,1,1,1,1,1,1,-1) , valor de i= 19680

(1,1,1,1,1,1,1,1,0)
(1,1,1,1,1,1,1,1,0)
(1,1,1,1,1,1,1,1,0) , valor de i= 19681

(1,1,1,1,1,1,1,1,1)
(1,1,1,1,1,1,1,1,1)
(1,1,1,1,1,1,1,1,1) , valor de i= 19682

sendo que eu queria que a impressão fosse:

(Um elemento armazenado na posição 6 da lista)
(Um elemento armazenado na posição 7 da lista)
(1,1,1,1,1,1,1,1,-1) , valor de i= 19680

(Um elemento armazenado na posição 6 da lista)
(Um elemento armazenado na posição 7 da lista)
(1,1,1,1,1,1,1,1,0) , valor de i= 19681

(Um elemento armazenado na posição 6 da lista)
(Um elemento armazenado na posição 7 da lista)
(1,1,1,1,1,1,1,1,1) , valor de i= 19682

Ou seja, o resultado final desta lista é que todos os elementos são: (1,1,1,1,1,1,1,1,1), ao invés de serem diferentes, ou todas as combinações possíveis.

Conto com vocês.

Criado 24 de março de 2010
Respostas 0
Participantes 1