Необходимо понять метод 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

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