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

Actualizar Vectores con el .set()

Estas en el tema de Actualizar Vectores con el .set() en el foro de Java en Foros del Web. Hola tengo el siguiente problema: Cuando actualizo una serie de vectores de la siguiente forma me funciona bien: for(int i=0;i<3;i++) { individuos.set(individuosPeores[i],mejoresIndividuos.get(i)); bins.set(individuosPeores[i],mejoresBins.get(i)); individuosSpaces.set(individuosPeores[i], individuosMejoresSpaces.get(i)); ...
  #1 (permalink)  
Antiguo 09/02/2010, 03:48
 
Fecha de Ingreso: febrero-2010
Mensajes: 15
Antigüedad: 14 años, 1 mes
Puntos: 0
Actualizar Vectores con el .set()

Hola tengo el siguiente problema:
Cuando actualizo una serie de vectores de la siguiente forma me funciona bien:

for(int i=0;i<3;i++)
{
individuos.set(individuosPeores[i],mejoresIndividuos.get(i));
bins.set(individuosPeores[i],mejoresBins.get(i));
individuosSpaces.set(individuosPeores[i], individuosMejoresSpaces.get(i));
}

Lo unico que hago en estas lineas es coger 3 elementos de los Vectores (IndividuosPeores[]) y sustituirlos por otros 3 elementos. Esto lo hace correctamente. El problema es que en futuras iteraciones al modificar el valor de cualquiera de estos 3 elementos se modifica el valor de los 3 al mismo tiempo, como si se hubiera realizado una copia de los 3 que cuando se modifica algo de cualquiera de ellos sucede lo mismo en los 3.

No se si me he explicado correctamente, si alguien me puede ayudar se lo agradeceria.
  #2 (permalink)  
Antiguo 09/02/2010, 04:22
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 5 meses
Puntos: 51
Respuesta: Actualizar Vectores con el .set()

En realidad tienes el mismo objeto en los tres vectores, así que es normal que cuando modifiques un objeto de un vector los cambios afecten al objeto accesible a través de los otros, ya que al fin y al cabo... es el mismo.

Si lo que quieres es guardara una copia distinta, tendrás que "clonar" el objeto y almacenar una copia diferente en cada vector.

S!
__________________
Para obtener respuestas, pregunta de forma inteligente o si no, pregunta lo que quieras que yo contestaré lo que me dé la gana.

Etiquetas: .get(), .set(), actualizar, vectores
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 13:21.