Tenho uma duvida…
tenho o seguinte metodo na classe abstrata SerVivo:
protected LinkedList posicoesVazias = new LinkedList();
public void verificaVizinhos(Grade grade, int[] posicao){
int[] pos = new int[2];
pos[0] = posicao[0]+1;
pos[1] = posicao[1];
if (pos[0] < grade.getDimensaoXTamanho() -1){
classificaSerVivo(grade, pos);
pos[1] = posicao[1] + 1;
if (pos[1] < grade.getDimensaoYTamanho() - 1){
classificaSerVivo(grade, pos);
}
}
O metodo classificaSerVivo está numa classe derivada Couve
public void classificaSerVivo(Grade grade, int[] posicao){
if (grade.getSerVivoPosicao(posicao) == null){
posicoesVazias.add(posicao);
} else if (grade.getSerVivoPosicao(posicao) instanceof Couve){
numCouvesVizinhas++;
} else if (grade.getSerVivoPosicao(posicao) instanceof Couve){
numOvelhasVizinhas++;
}
}
O problema é que por exemplo, na primera chamada do met. ‘classificaSerVivo()’ adiciona o valor (0,1). Cada vez que mudo os valores de pos[] ou posicao[] no met. ‘verificaVizinhos()’, modifica todos os valores da lista, por exemplo, adiciona um novo valor, por exemplo (1,1), dai ele altera todos os valores da lista pra (1,1) tambem. Acho que o problema deve ser um apontando para o outro, gostaria de saber como que eu faço para os valores dentro da lista nao serem modificados? Obrigado
[size=“11”][color=“red”]* Editado: Lembre-se de utilizar BBCode em seus códigos - Matheus [/color][/size] :joia: