Galera, to com um problema de lógica.
Eu tenho um array que tem n Objetos de outra classe. Os objetos dessa classe são criados tendo um número que varia de 1 a 100 sendo mandados por parâmetro.
O que eu to fazendo é: comparo o campo 0 com o 1 e vejo quem tem o “melhor valor” e esse que tem o melhor valor, vai para a posição 0. Comparo o 2 c/ o 3 e o que tem o “Melhor valor” vai para a posição 1, e assim por diante, até chegar no final do array. Isso faz com que meu array fique com os melhores valores até a metade do array. A outra metade eu queria colocar novos objetos, mas esses objetos não podem ter o mesmo número que os que tem a outra metade tem. Não podem ter valores repetidos… Se no meu array que os melhores valores estão, tem objetos que tem o numero 1, 3, 5, … no meu outro, os objetos criados devem ter 2, 4, 6… e assim por diante (não precisam ser na ordem), até atingirem 100 ou 99. Estou gerando aleatoriamente esses novos valores, mas não consigo encontrar uma maneira de eles derem certo.
/* Array de novos individuos gerados aleatoriamente */
for (i = j; i < numeroIndividuos; i++)
{
int k = 0;
int cotador = 0;
/* Cria um novo individuo conforme o índice do for. */
Indivíduo aux = new Indivíduo(i);
/* Como não podem ter indivíduos com o mesmo nome, ocorre essa troca de numeros. */
while (contador <= numeroInividuos)
{
for (k = 0; (k < numeroIndividuos/2) /*|| (aux.getNumero() != populacao[k].getNumero())*/; k++)
{
if (aux.getNumero() == populacao[i].getNumero())
{
do {
aux.setNumero(geradorAleatorio.nextInt((numeroIndividuos)));
} while ((populacao[k].getNumero()) == (aux.getNumero()));
}
populacao[i] = aux;
contador++;
}
}
}
Alguem ajuda? Ah! O j = metade do array pra frente.
Valeu, abraço!

