public class Contact
{
int i;
String name;
public Contact(int iVal, String nameVal)
{
i = iVal;
name = nameVal;
}
}
public class MultiMap
{
public static void main (String args[])
{
java.util.HashMap m = new java.util.HashMap();
Contact m1 = new Contact(1, "name");
Contact m2 = new Contact(1, "name");
m.put(m1, "first");
m.put(m2, "second");
System.out.println(m.get(m1));
System.out.println(m.get(m2));
}
}
de salida es:objetos como llaves mapa sin Hashcode y es igual a
first
second
¿Cómo se comporta este método "get"? Como tanto m1 como M2 tienen los mismos valores y no he reemplazado a hashcode(), ¿se llamará al método equals() de la clase Object?
¿Es esto correcto?
- No existe un método hashCode lo que no hay manera para que la JVM para ver si los objetos M1 y M2 contienen valores diferentes
- No hay igual método anulado de manera objeto es igual de clase() se invoca y que ambos objetos son diferentes, el código anterior funciona bien sin m2 reemplazando el valor de m1.