2012-04-21 2 views
1

У меня есть hashmap из двух объектов, но он, кажется, возвращает разные значения, потому что hashcode отличается. Пример.HashMap разные хэш-коды возвращают разные значения? Java

HashMap<HashMapTest, String> newMap = new HashMap<HashMapTest, String>(); 
    newMap.put(new HashMapTest("test"), "line"); 
    System.out.println(newMap.get(new HashMapTest("test"))); 

в hashcodes разные, когда я положил его в HashMap и когда я его из HashMap. Есть ли способ исправить это?

+1

Давайте посмотрим ваш класс 'HashMapTest', пожалуйста. – weston

ответ

6

Предоставил ли вы произвольную реализацию метода hashCode() в HashMapTest? Наверное, нет, и это поведение по умолчанию hashCode() унаследовано от java.lang.Object (вы на самом деле используете два разных объекта.) Посмотрите на this question, чтобы предоставить правильные hashCode/equals реализации для ваших классов.

Смежные вопросы