Ayuda con Tabla Hash

averia
10 de Mayo del 2004
Hola, estoy programando una tabla hash. La clave es un string y los valores son double[2]. El problema es q me almacena siempre el mismo valor, el ultimo q le meto por cierto. Si alguien ha trabajado con tablas hash o sabe donde hay ejemplos, por favor que m lo diga.
Gracias.

Heihachi
10 de Mayo del 2004
Si lo que haces es algo como:
double[] d=new double[2];
d[0]=1.0;
d[1]=2.0;
hash.put("valor1",d);
d[0]=3.0;
d[1]=4.0;
hash.put("valor2",d);

Las claves "valor1" y "valor2" guardan la referencia al mismo objeto, al único double[] que tienes en tu programa y que vas modificando antes de cada put.

Para evitar esto has de hacer un new para cada nuevo valor:
double[] d=new double[2];
d[0]=1.0;
d[1]=2.0;
hash.put("valor1",d);
d = new double[2];
d[0]=3.0;
d[1]=4.0;

Saludos!

maramonar
10 de Mayo del 2004
Y en el hashtable estás poniendo objetos distintos (distintos double[])???...recordá que lo que guardas son referencias a un objeto no "fotos" de un objeto....por ahí si posteas el código te podemos ayudar, pero por ejemplo si haces:
java.util.Hashtable table = new java.util.Hashtable();
double[] array = new double[2];
array[0] = 1;
array[1] = 1;
table.put("primero", array);
array[0] = 2;
array[1] = 2;
table.put("segundo", array);
array = (double[])table.get("primero");
System.out.println(array[0]);
System.out.println(array[1]);
vas a ver que si bien estas recuperando el "primero" los valores que obtenes son = 2.

maramonar
10 de Mayo del 2004
opppss, contesté lo mismo que el anterior...

averia
10 de Mayo del 2004
No importa , muchas gracias a los dos, creo q si va a ser ese el fallo