Foros del Web » Programación para mayores de 30 ;) » Java »

Ayuda con Arreglos!!! URGENTE

Estas en el tema de Ayuda con Arreglos!!! URGENTE en el foro de Java en Foros del Web. Hola Gente, soy nuevo en este foro, espero que comprendan mis inutileces... Tengo un problema con un arreglo... vean... /*Tengo esta clase*/ public class Genes ...
  #1 (permalink)  
Antiguo 26/11/2005, 17:57
 
Fecha de Ingreso: noviembre-2005
Ubicación: Costa Rica
Mensajes: 4
Antigüedad: 18 años, 5 meses
Puntos: 0
Ayuda con Arreglos!!! URGENTE

Hola Gente, soy nuevo en este foro, espero que comprendan mis inutileces...

Tengo un problema con un arreglo...
vean...

/*Tengo esta clase*/
public class Genes {
public int Grup;
public int Mate;
public int Prof;
....
}

/*-------------------*/
Ahora en otra clase tengo lo siguiente...
/*Otra Clase*/
public class MetodosGeneticos{
Genes []Cromo = new Genes[200]; //array de cromosomas de tipo genes

/*para iniciar arreglo*/
public void inicie(){
Genes g = new Genes();
for(int i = 0; i < Cromo.length; i++)
Cromo[i] = g;
}

/*en un metodo aparte*/
public void PoblacionIncial(){
....
Cromo[cont].Grup = 1;
Cromo[cont].Mate = 15;
....
}

Ahora si, lo que me pasa es que en cada insercion como la del metodo anterior se me inserta en todo el arreglo y no en la posicion que le da cont, osea, if (cont == 0) y meto Cromo[cont].Grup = 1; todos los Cromo[NNN].Grup se le mete el mismo valor.............

No se que es lo que pasa..........

Ayuda........... lo mas antes posible, ojala antes del lunes 28 de noviembre....
pleace............


}
  #2 (permalink)  
Antiguo 26/11/2005, 18:21
Avatar de goncafa  
Fecha de Ingreso: julio-2002
Ubicación: Santiago
Mensajes: 1.211
Antigüedad: 21 años, 10 meses
Puntos: 10
Es por que estas insertando en todo el arreglo el mismo objeto. El problema esta a la vista.

Código PHP:
/*para iniciar arreglo*/
public void inicie(){
    
Genes g = new Genes();
    for(
int i 0Cromo.lengthi++)
        
Cromo[i] = g;

Ese codifo hace que crees un objeto y luego insertes en todo el arreglo una instacia a el mismo objeto.

Tu codigo deberia estar asi

Código PHP:
/*para iniciar arreglo*/
public void inicie(){
    for(
int i 0Cromo.lengthi++)
        
Cromo[i] = new Genes();

Saludos
__________________
se despide hasta la proxima
Gonzalo Castillo
  #3 (permalink)  
Antiguo 28/11/2005, 00:48
 
Fecha de Ingreso: noviembre-2005
Ubicación: Costa Rica
Mensajes: 4
Antigüedad: 18 años, 5 meses
Puntos: 0
De acuerdo Gracias

Al amigo que me respondio!!!

muchas gracias.

Ya lo habia hecho asi y siempre se me caia, pero, el error estaba en otro lado.

de nuevo gracias,,,, me sirvio de mucho..........

excelente foro...........
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:45.