设置到给定点的最近点

时间:2015-06-25 11:02:50

标签: java sorting

我有一个由this类表示的2维点的ArrayList。我从用户的鼠标点击中得到x和y坐标,我必须找到该集合中最近的点到用户鼠标获得的点。在我试图解决这个问题时,我发现了以下主题

find closest point from users coordinates

Point2D类有一个名为DISTANCE_TO_ORDER的比较器,它使用到第三个点的距离来比较两个点。我尝试了以下几点来获得最接近的点:

public Point2D closestPoint(Point2D p){
    return Collections.min(points, p.DISTANCE_TO_ORDER);
}

但是我收到错误:线程“main”java.util.NoSuchElementException中的异常 当我尝试

Point2D p = new Point2D(-46.73081652, -23.557997478347108);
Point2D c = gps.closestPoint(p);

我做错了什么?我试图实现类似主题的东西,但没有奏效。有人可以帮我解决这个问题吗?

PS:我必须使用Point2D类。

谢谢!

1 个答案:

答案 0 :(得分:4)

来自Collections.min(collection, comparator)上的JavaDoc:

  如果集合为空,

抛出NoSuchElementException。

因此很可能points是空的。