Tengo una clase que quiero configurar como teclas en HashMap. Ya he implementado el método compareTo para esa clase. Pero aún cuando lo hago:Configuración de la clase propia como clave en Java Hashmap
map.put(new MyKey(dummyArguements) , dummyValue); System.out.println(map.get(new MyKey(dummyArguements)));
obtengo nulo. Eso significa que hashmap no puede identificar que las dos claves (para obtener & poner llamada) son las mismas.
¿Podría alguien ayudarme aquí por favor?
Me refiero sin falta de respeto (ni tampoco creo que esto sea cierto), pero ** ¿cómo sabes esto? He estado leyendo la documentación de ['HashMap'] (http://docs.oracle.com/javase/7/docs/api/java/util/HashMap.html) una y otra vez; las siguientes interfaces y herencias ... y no hay nada que implique que los métodos mencionados anteriormente deban implementarse ni anularse (ya que son heredados de la clase de raíz 'Object') para que funcione correctamente con' HashMap'. –
La definición de algunos métodos en la interfaz de Mapa establece algunas de las reglas. Por ejemplo containsKey() menciona específicamente equals().La documentación de hashCode() en Object especifica la relación entre it y equals(). Sin embargo, estoy de acuerdo con su punto: la documentación de HashMap debe hacer referencia al método hashCode() y documentar su uso/requisito para las claves de HashMap. –
También su clase debe ser 'inmutable' – Sadegh