【发布时间】:2016-02-19 03:08:11
【问题描述】:
我有以下问题:我正在使用看起来像这样的点列表
List<Point> list = new ArrayList<Point>();
现在我正在尝试通过他的坐标检查一个新点是否已经是列表的成员以及它的前一个邻居。
if ((!list.contains(point)) && list.contains(point.getX() - 1)) {
......
}
现在的问题是这个表达式永远不是真的,虽然我可以清楚地看到,使用调试器,一个位置为 (x-1, y) 的点在它的左边(高度在这里并不有趣) 在列表内,而点本身不在。
有什么想法吗?
【问题讨论】:
-
这里有些奇怪。在条件的第一部分中,您正在检查列表是否包含
Point类型的对象,在第二部分中,您正在检查它是否包含@ 987654324@..(我假设).. 对吗? -
不是类型点的对象,它是具有 x 和 y 值的点。第二个你理解正确。示例:我的观点是(5,5)。我正在检查是否还有另一个值 (4,y)
-
这就是您正在检查的内容。请参阅下面的答案。
-
是的,但是 point 是一个设置了 x 和 y 值的对象。点点 = 新点()。它不是 list.contains(Point);
-
写了..这就是为什么我说它是类型
Point。希望答案对您有所帮助。