¿Cómo implementar en java una función genérica para actualizar datos de vectores?

No se si es una tontería, pero mi problema es que quiero actualizar el valor de 2 vectores mediante una funcion genérica. Le paso los vectores como argumento:MeterDatos (Vector1, valor1, Vector2, valor 2);
No logro hacerlo funcionar. Antes lo hacia de uno en uno vector=meterdato(vector, valor), pero necesito actualizar los datos a la vez. ¿Alguna solución?.

1 respuesta

Respuesta
1
No entiendo como no te los actualiza. Java pasa todos los parámetros por referencia, por lo que una función como:
public void MeterDatos(Vector v1, Object valor1, Vector v2, Object valor2){
v1.add(valor1);
v2.add(valor2);
}
Modifica efectivamente Vector1 y Vector2, al invocarla:
MeterDatos (Vector1, valor1, Vector2, valor 2);
De hecho no necesitas hacer ningún return ni siquiera cuando tenías un solo vector.
El que se haga un return es una convención según la cual un método no debe modificar los parámetros que se le pasan por referencia y en su lugar debe crear una copia de ellos y modificarla. De esta forma se evitan efectos laterales, pues si no se sigue, cuando el programa se complica se puede olvidar que la llamada a determinadas funciones ha modificado los datos y de esta forma se producen errores difíciles de detectar.
Es una convención que no comparto, pues penaliza absurdamente el rendimiento al tener que copiar los datos una y otra vez (imagina que vector 1 tuviese miles o millones de objetos) y los errores se pueden evitar documentando adecuadamente o/y con convenciones de nombrado para esas funciones(aunque a mí el nombre de meter datos ya me parece suficientemente descriptivo :-)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas