Можно ли быть уверенным, что если в двух объектах типа HashMap находятся одинаковые (с точки зрения метода equals) ключи и этим ключам сопоставлены одинаковые (с точки зрения метода equals) значения, то независимо от порядка добавления подобъектов и независимо от адресов объектов, эти объекты HashMap будут одинаковы с точки зрения их методов equals и у них будут одинаковы hashCode?
Если это с виду не так, то означает ли это, что ошибка может быть ТОЛЬКО в методах equals и hashSet, которые я переопределил в своих объектах, которые я клал в HashMap?
Здравствуйте, dims12, Вы писали:
D>Можно ли быть уверенным, что если в двух объектах типа HashMap находятся одинаковые (с точки зрения метода equals) ключи и этим ключам сопоставлены одинаковые (с точки зрения метода equals) значения, то независимо от порядка добавления подобъектов и независимо от адресов объектов, эти объекты HashMap будут одинаковы с точки зрения их методов equals и у них будут одинаковы hashCode?
D>Если это с виду не так, то означает ли это, что ошибка может быть ТОЛЬКО в методах equals и hashSet, которые я переопределил в своих объектах, которые я клал в HashMap?
Здравствуйте, dims12, Вы писали:
D>Можно ли быть уверенным, что если в двух объектах типа HashMap находятся одинаковые (с точки зрения метода equals) ключи и этим ключам сопоставлены одинаковые (с точки зрения метода equals) значения, то независимо от порядка добавления подобъектов и независимо от адресов объектов, эти объекты HashMap будут одинаковы с точки зрения их методов equals и у них будут одинаковы hashCode?
Да, именно так. У вас есть сорцы jdk? Этот вопрос выясняется самостоятельно в течение одной минуты.
D>Если это с виду не так, то означает ли это, что ошибка может быть ТОЛЬКО в методах equals и hashSet, которые я переопределил в своих объектах, которые я клал в HashMap?
Либо это, либо в мапах лежат разные пары. Проверьте отдельно map1.keySet().equals(map2.keySet()).