Необходимо понять метод map.get() после переопределения hashCode и равенства в Java.JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Необходимо понять метод map.get() после переопределения hashCode и равенства в Java.

Сообщение Anonymous »

Я переопределил методы hashCode и Equals, как показано ниже, и хочу понять реализацию метода get Map.

Код: Выделить всё

public class Student{
String name;

Student(String s){
this.name = s;
}

@Override
public boolean equals(Object o) {
return false;
}

@Override
public int hashCode() {
return 111;
}

public static void main(String[] args) {
Map map=new HashMap();
Student ob1=new Student("A");
Student ob2=new Student("B");
map.put(ob1,"A");
map.put(ob2,"B");
System.out.println(map.get(ob1));
}
}
Я попробовал запустить map.get(), ожидая нулевого результата, потому что ключ никогда не будет найден, поскольку методquals() всегда будет возвращать результат false, но в этом случае я получаю результат как A.


Подробнее здесь: https://stackoverflow.com/questions/787 ... ls-in-java
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»