значение ключа hashmap в Java - PullRequest
       4

значение ключа hashmap в Java

0 голосов
/ 04 февраля 2012

у меня есть 2 объекта, созданных как

final VideoObj v1 = new VideoObj("A", 2000, "B");
final VideoObj v1copy = new VideoObj("A", 2000, "B");

я использую хэш-карту, как показано ниже

private final Map<Video, Record> _data = _data = new HashMap<Video, Record>();

- это v1, добавленный в Запись видео, отмечена 1, которая находится в классе записи,

как хэш-карта узнает, что это тот же ключ, потому что я добавил v1 1-й, а запись была 1, затем я добавил v1copy, а затем запись 2. Почему она становится 2 вместо того, чтобы добавить новый для v1copy

пожалуйста, помогите мне с этим спасибо

Ответы [ 2 ]

2 голосов
/ 04 февраля 2012

Я даже не уверен, что вы спрашиваете, это объяснение помогает вообще?

HashMap s сравнивают объекты на основе методов equals() и hashCode(), по умолчанию они проверяют идентичность объекта, поэтому v1 и v1copy не будут рассматриваться как идентичные, если вы не переопределите метод hashCode() в классе VideoObj.

1 голос
/ 04 февраля 2012

Вы переопределили метод equals () в классе VideoObj?И проверяет ли равенство на основе одного из трех параметров, принимаемых конструктором?Вы можете проверить это http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html#hashCode()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...