【发布时间】:2016-06-26 18:41:19
【问题描述】:
在 PacMan DFS 问题中,我用以下静态内部类表示每个点
static class Point{
int xp;
int yp;
public Point(int x, int y){
xp = x;
yp = y;
}
public boolean equals(Point p){
return (xp == p.x && yp == p.y) ? true: false;
}
public String toString(){
return xp+" "+yp;
}
}
并在ArrayList<Point> points = ArrayList<Point>();中添加每个点
问题是:如果我执行以下操作,points.contains(new Point(1, 2)) equals(method) 从未调用过,尽管 points.size() > 0; (当然)
如果你不知道: contains 调用 ArrayList.indexOf --> 运行每个点并使用 equals 进行比较 if equals return num>-1 else return -1,但 indexOf 永远不会在 contains(point) 中达到 equals如果点为空。
你认为可能是什么原因?
【问题讨论】: