Java - Estructuras de Datos en Java

 
Vista:

Estructuras de Datos en Java

Publicado por voidWoman (2 intervenciones) el 08/05/2007 10:40:58
Hola,

Necesito una estructura que me permita hacer lo siguiente:
- Almacenar pares (clave, valor)
- Modificar el valor de una clave
- Consultar pares (clave, valor)

Creo que una Hashtable podria servirme, aunque no sé si permite modificar el valor de una clave una vez ya se ha almazenado. Alguien puede asegurarme si se puede modificar el valor de una clave en una hastable, o bien si hay alguna estructura de datos que crea que pueda irme mejor??

Muchas gracias!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Estructuras de Datos en Java

Publicado por voidWoman (2 intervenciones) el 08/05/2007 11:27:46
Bueno, me contesto a mi misma por si alguien está interesado en la respuesta:

Pues bien, la clase HashMap (parecida a HastTable pero más potente) permite almacenar y consultar pares (clave, valor). Además, tiene una interfície (Map.Entry) que dispone de una operacion (setValue), que permite modificar el valor de una clave.

Por ejemplo, el siguiente programa:

import java.util.*;
public class hashMap {

public static void main(String[] args) {
Map map = new HashMap();
map.put("A","initialValue");
map.put("B","initialValue");
map.put("C","initialValue");
System.out.println(map);

Iterator camps = map.entrySet().iterator();
while (camps.hasNext())
{
Map.Entry entrada = (Map.Entry)camps.next();
entrada.setValue("finalValue");
}
System.out.println(map);
}
}

devuelve:

{A=initialValue, C=initialValue, B=initialValue}
{A=finalValue, C=finalValue, B=finalValue}

Saludos!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Estructuras de Datos en Java

Publicado por Gonzalo (180 intervenciones) el 08/05/2007 14:45:42
Tanto con una Hashtable como con un HashMap puedes hacer simplemente...

Hashtable tabla = new Hashtable();

tabla.put("A","initialValue");
tabla.put("B","initialValue");
tabla.put("C","initialValue");

// Si ahora haces...
tabla.put("A","newValue");
// simplemente se modifica el valor

Es decir, no necesitas sacar el MapEntry y luego modificar su valor.

Y si lo que quieres es recorrerlo con un bucle puedes hacer algo como...

Enumeration k = tabla.keys();
while (k.hasMoreElements()) {
····String clave = (String) k.nextElement();
····String valor = (String) tabla.get ( clave );
····// ...
····// P.ej. System.out.println("Clave: " + clave + "; Valor: " + valor);
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar