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

HashMap y Serialización

Estas en el tema de HashMap y Serialización en el foro de Java en Foros del Web. Hola, tengo un problema con la clase HashMap introduzco un par clave valor, y al buscarlo me devuelve null. Si lo busco nada más introducirlo ...
  #1 (permalink)  
Antiguo 19/04/2011, 06:54
 
Fecha de Ingreso: agosto-2010
Mensajes: 128
Antigüedad: 13 años, 8 meses
Puntos: 2
HashMap y Serialización

Hola, tengo un problema con la clase HashMap

introduzco un par clave valor, y al buscarlo me devuelve null.

Si lo busco nada más introducirlo con el mismo objeto clave que lo intriduje, todo va Ok,
si genero un nuevo objeto clave con el mismo valor en los campos, y lo busco de nuevo, devuelve null.

Al compilar (no estos ficheros, si no otros ficheros que se me generan con la utilidad javacc a partir de estos, me sale el siguiente Warning sobre algo relacionad con la serialización, que no se si tendrá algo que ver):

C2.java:2010: warning: [serial] serializable class C2.LookaheadSuccess has no definition of serialVersionUID
static private final class LookaheadSuccess extends java.lang.Error { }
^
1 warning



Aquí dejo el código de la clase que utilizo como clave y de la manipulación del HashMap.
A ver si sabéis por qué ocurre esto. Gracias!

// Clase usada como clave
public class Id
{
public String nombre;
public int profundidad;

public Id(String name, int prof)
{
nombre = new String(name);
profundidad = prof;
}

public Id(){}
}




public class TablaSimbolos{

private HashMap<Id, Simbolo> tabla; // Variables definidas

public TablaSimbolos()
{
tabla = new HashMap<Id, Simbolo>();


}

public void insertar(Id nombre, Simbolo s)
{
tabla.put(nombre, s);

Id n = new Id(nombre.nombre,nombre.profundidad );

if(tabla.containsKey(nombre)==false) { /* Aqui si encuentra el objeto, y no entra */}
if(tabla.containsKey(n)==false) { /* El objeto no lo encuentra, y entra aquÃ* :S */}

}
}
  #2 (permalink)  
Antiguo 20/04/2011, 04:46
 
Fecha de Ingreso: agosto-2010
Mensajes: 128
Antigüedad: 13 años, 8 meses
Puntos: 2
Respuesta: HashMap y Serialización

Por si alguien le interesa, ya lo arreglé.

Cuando se usa una clase que no sea del api de java como clave, hay que sobreeescribir los métodos equals y hashCode de la clase object.

Etiquetas: Ninguno
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 14:57.