Почему равные и хэшкод не влияет на размер хэшмапа?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Почему равные и хэшкод не влияет на размер хэшмапа?

Сообщение Anonymous »

Я пробую тест с Hashmap для пользовательского класса с переопределением equals и hashcode Метод:

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

public class Car {

public int hashcode() {
return 1;
}

@Override
public boolean equals(Object o1) {
return true;
}
}
< /code>
Основной класс: < /p>
public static void main(String[] args) {
// TODO Auto-generated method stub
HashMap map = new HashMap();
Car c1 = new Car();
Car c2 = new Car();
System.out.println(c2.equals(c1));
System.out.println(c1==c2);
map.put(c1, "car1");
map.put(c2, "car2");
System.out.println(map.size());
System.out.println(map.get(c1));
}
< /code>
Я ожидал вывода как 1 и Car2, но это 2 и Car1. Кто -нибудь может объяснить причину? Мой equals 
верно для каждого объекта автомобиля, а Hashcode также одинаково.

Подробнее здесь: https://stackoverflow.com/questions/593 ... shmap-size
Ответить

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

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

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

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

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