我有一个名为Coordinate的类,它包含两个属性-纬度和经度。我将此添加到ArrayList。现在,我想获取此ArrayList的最西端坐标。我想要一个高效的算法(因为我有6000个)坐标类。

最佳答案

如果您只想获取最西端的东西,那么就没有理由对列表进行排序。

Coord mostWest = Coord.newAtMaximumEast();
for(Coord coord : listOfCoordinates)
   if(coord.isFurtherWest(mostWest))
     mostWest = coord;


可读性较低的版本可能是:

Coord mostWest = null;
for(Coord coord : listOfCoordinates)
   if(mostWest == null || coord.getLong() < mostWest.getLong())
     mostWest = coord;


这是O(n)的复杂性,所有排序算法都比较复杂,最有效的仍然是O(n log n)。

关于java - 解析纬度/经度数组列表以获取最西纬度,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26211934/

10-14 11:39