name.equals(vertexName)
сравнивает Vertex
с String
.Хотя ваш Vertex
class equals
метод может возвращать true
, когда вы передаете ему String
, String
equals
никогда не вернет true
, когда вы передадите ему Vertex
.
HashMap
, вероятно, проверяет, является ли vertexName.equals(name)
, который возвращает false
.
Изменить
vertexIndexes.containsKey("Fischen")
на
vertexIndexes.containsKey(new Vertex("Fischen"))
или изменитьключ вашего Map
к String
.
Кстати, вы могли бы избежать этой проблемы в первую очередь, если бы вы следовали контракту метода equals
, который указан в Javadoc Object
class:
• Симметрично: для любых ненулевых ссылочных значений x и y x.equals (y) должен возвращать true, если и только если y.equals (x) возвращает true.
Ваша реализация equals
не симметрична.