我收到了1200个机场的文件,其中列出了机场代码,纬度,经度,城市和州。
EX:ANB 33.58 85.85 Anniston AL
最终我将编写“距离”方法来返回两个输入机场的距离和信息,“最近”返回代码和最近机场到输入机场的距离,以及“最短”以找到开始和输入的最短旅程机场和前往n个机场。
现在我的问题是,读取这些数据的最佳方式是什么,最终会让我更容易在以后编写/计算距离?
比如我在文件中读取然后在一个方法中放入HashMap或TreeSet,这将如何完成?或者我会在其他方法中等待并使用HashMap / TreeSet吗?
抱歉,我还没有任何代码,但我现在仍然坚持这一点,你们各方面都非常帮助我,所以只是寻找方向。
答案 0 :(得分:0)
听起来最简单的方法是创建一个对象来存储一个机场的信息,然后将所有这些对象存储在一个阵列中。我这样说是因为你可能要在整个数组上进行大量的迭代以构建你的其他方法,并且由于只有有1200个对象,所以任何花哨的排序都不会加快你的计划。
我想您也可以将您的机场组划分为地理区域并覆盖hashcode()
以便将附近的机场组合在一起,但这并不会给您带来太大的速度,而且对于附近的机场来说并不是特别有用。一个地区的边缘。同样,您可以实施GeoHash,但这些也存在某些边缘条件的问题,这些条件可能与您的机场集合有关,也可能无关紧要。 (如果你进行搜索,那里还有GeoHashes的开源Java实现。)
无论您做什么,都不要设置一组HashMaps
来将机场名称映射到您的其他每个数据。这是一种常见的初学者方法,但它也是最慢的方法。创建一个对象要好得多。