Равны ли одинаковые HashMap?
От: dims12 http://www.relativity.ru
Дата: 22.06.07 19:35
Оценка:
Можно ли быть уверенным, что если в двух объектах типа HashMap находятся одинаковые (с точки зрения метода equals) ключи и этим ключам сопоставлены одинаковые (с точки зрения метода equals) значения, то независимо от порядка добавления подобъектов и независимо от адресов объектов, эти объекты HashMap будут одинаковы с точки зрения их методов equals и у них будут одинаковы hashCode?

Если это с виду не так, то означает ли это, что ошибка может быть ТОЛЬКО в методах equals и hashSet, которые я переопределил в своих объектах, которые я клал в HashMap?
Re: Равны ли одинаковые HashMap?
От: RomikT Германия  
Дата: 22.06.07 19:47
Оценка: +1
Здравствуйте, dims12, Вы писали:

D>Можно ли быть уверенным, что если в двух объектах типа HashMap находятся одинаковые (с точки зрения метода equals) ключи и этим ключам сопоставлены одинаковые (с точки зрения метода equals) значения, то независимо от порядка добавления подобъектов и независимо от адресов объектов, эти объекты HashMap будут одинаковы с точки зрения их методов equals и у них будут одинаковы hashCode?


D>Если это с виду не так, то означает ли это, что ошибка может быть ТОЛЬКО в методах equals и hashSet, которые я переопределил в своих объектах, которые я клал в HashMap?


Судя по javadoc, да.
Re: Равны ли одинаковые HashMap?
От: sereda Россия http://igorsereda.moikrug.ru
Дата: 22.06.07 21:57
Оценка:
Здравствуйте, dims12, Вы писали:

D>Можно ли быть уверенным, что если в двух объектах типа HashMap находятся одинаковые (с точки зрения метода equals) ключи и этим ключам сопоставлены одинаковые (с точки зрения метода equals) значения, то независимо от порядка добавления подобъектов и независимо от адресов объектов, эти объекты HashMap будут одинаковы с точки зрения их методов equals и у них будут одинаковы hashCode?


Да, именно так. У вас есть сорцы jdk? Этот вопрос выясняется самостоятельно в течение одной минуты.

D>Если это с виду не так, то означает ли это, что ошибка может быть ТОЛЬКО в методах equals и hashSet, которые я переопределил в своих объектах, которые я клал в HashMap?


Либо это, либо в мапах лежат разные пары. Проверьте отдельно map1.keySet().equals(map2.keySet()).
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.