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 */}
}
}