Olá pessoal, estou tendo problemas para utilizar ArrayLists, já pesquisei sobre meu erro e não encontrei nada parecido. O meu problema se refere às seguintes classes:
import java.util.ArrayList;
public class Ambiente {
private Matriz dados;
public ArrayList<Cromossomo> populacao = new ArrayList<Cromossomo>();
public ArrayList<Cromossomo> popIntermediaria = new ArrayList<Cromossomo>();
public Cromossomo cromossomo = new Cromossomo();
private CromossomoFitness fitness = new CromossomoFitness();
public Ambiente(Matriz matriz){
dados = matriz;
}
public void gerarPopulacao(){
for(int i = 0; i < dados.populacao; i ++){
for(int j = 0; j < 22; j ++){
cromossomo.locus[j] = dados.matriz[i][j];
}
cromossomo.fitness = fitness.fitness_funcao(cromossomo.locus);
cromossomo.id = i;
populacao.add(cromossomo);
}
}
public class Cromossomo {
public int[] locus = new int [22];
public int id;
public float fitness;
public Cromossomo(){
}
public Cromossomo(Cromossomo cromo) {
this.fitness = cromo.fitness;
this.id = cromo.id;
this.locus = cromo.locus.clone();
}
}
Acontece que quando eu acrescento o segundo valor no ArayList o primeiro esta sendo sobrescrito, e todo valor que é armazenado sobrescreve os anteriores, assim quando eu termino de preencher o ArrayList todos os valores são iguais ao último inserido.
Se alguém puder me ajudar eu ficaria muito grato :D