Надеюсь это поможет :)
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));
}
}
:
first
second
Как ведет себя этот метод «get»? Поскольку и m1, и M2 имеют одинаковые значения, и я не переопределил hashcode (), будет ли вызван метод equals () класса Object?
Это верно ?
Нет метода хэш-кода, поэтому у JVM нет возможности увидеть, содержат ли объекты m1 и m2 разные значенияНе существует переопределенного метода equals, поэтому вызывается equals () класса Object, и, поскольку оба объекта различаются, приведенный выше код работает нормально, без замены m1 значения m1.