2015-06-20 1 views
-2

The phone key which I'm trying to get from the hashtablehashtable.get не работает - Java

На рисунке выше показан ключ телефона, который я пытаюсь извлечь из хэш-таблицы. Он возвращает значение null, когда хэш-таблица имеет этот ключ, как показано на следующем рисунке.

This picture shows that Hashtable does contain the key I'm requesting in the above picture. But it's returning null. Why is so?

Почему Хеш возвращение нуля, когда у него есть ключ. Пожалуйста, помогите, я застрял от часов.

+2

возможно из-за этого: http://stackoverflow.com/questions/6485186/if-key-in-hashtable-is-a-class-object-how-does-containskey-work – Surely

+2

Почтовый код в вопросе as текст, а не как изображения. – chrylis

ответ

3

Вам нужно посмотреть метод .equals() для вашего класса PhoneNum. Хэш использует equals(), чтобы определить, равен ли ключ параметру от get(). Обратите внимание, что если вы пишете equals() для своего PhoneNum, вам также нужно написать PROPER hashcode(), так что дело не только в письменной форме. Посмотрите равные и хэш-коды, чтобы вы знали, что делаете.