2015-06-25 100 views
0

我有一個由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); 
} 

,但我得到的錯誤:在線程異常「主要」 java.util.NoSuchElementException 當我嘗試

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

我是什麼做錯了?我試圖實現類似的主題,但沒有奏效。有人可以幫我解決這個問題嗎?

PS:我必須使用Point2D類。

謝謝!

+0

第一個片段中的「points」和第二個片段中的「gps」是什麼? – Thomas

回答

4

根據JavaDoc上Collections.min(collection, comparator)

throws NoSuchElementException if the collection is empty.

因此最有可能points是空的。

+0

確實,這是空的。我忘了調用填充它的方法。感謝您的回答。 – Giiovanna

相關問題