有一个抽象类Node
,Cell
是他的子类。
在Cell
中,我实现了public boolean equals(Node cmpCell)
。我创建了一个Set<Node> closeList = new HashSet<Node>()
,当我执行closeList.contains((Cell) node)
时,我进行了调试,发现它完全忽略了我所实现的Cell equals
。我做错了什么?
编辑:
我在Cell
中进行了更改
@Override
public boolean equals(Object cmpCell)
而且closeList.contains((Cell) node)
仍然没有使用上述覆盖。
第二次编辑:
Cell
类中有2个成员 -
int colIndex ;
int rowIndex ;
equals
方法只是比较第二个类的两个成员变量是否相等,因此我认为最好使用HashMap<K, V>
。但是,我仍然很想知道在这种情况下hashCode
应该长什么样。
@Override
应该总是注释一个方法,该方法应该覆盖另一个方法。如果没有这样做,就会导致编译错误。 - JB NizethashCode
方法。您是否使用Eclipse IDE
?如果是,则请遵循我的最后一段话。 - Rohit JainEclipse IDE
吗? - Rohit Jain