File io 读取机场代码和lat文件,长坐标

File io 读取机场代码和lat文件,长坐标,file-io,hashmap,treeset,File Io,Hashmap,Treeset,我收到了一份1200个机场的文件,其中列出了机场代码、纬度、经度、城市和州 EX:ANB 33.58 85.85 Aniston AL 最终,我将编写方法“距离”返回两个输入机场的距离和信息,“最近的”返回代码和最近机场到输入机场的距离,“最短的”查找开始和输入机场的最短行程,并前往n个机场 现在我的问题是,什么是读取这些数据的最佳方式,最终使我更容易在以后写入/计算距离 例如,我会读入文件,然后放入HashMap,或者在一个方法中放入TreeSet,这将如何实现?或者我会等待并在其他方法中使用

我收到了一份1200个机场的文件,其中列出了机场代码、纬度、经度、城市和州

EX:ANB 33.58 85.85 Aniston AL

最终,我将编写方法“距离”返回两个输入机场的距离和信息,“最近的”返回代码和最近机场到输入机场的距离,“最短的”查找开始和输入机场的最短行程,并前往n个机场

现在我的问题是,什么是读取这些数据的最佳方式,最终使我更容易在以后写入/计算距离

例如,我会读入文件,然后放入HashMap,或者在一个方法中放入TreeSet,这将如何实现?或者我会等待并在其他方法中使用HashMap/TreeSet吗


很抱歉,我还没有任何代码,但我现在还停留在这一点上,你们帮了我很大的忙,所以就在这一点上寻找方向。

听起来最简单的方法是创建一个对象来存储一个机场的信息,然后将所有这些对象存储在一个数组中。我这样说是因为你可能要在整个数组中进行大量的迭代来构建你的其他方法,而且因为你只有1200个对象,任何奇特的排序都不会让你的程序加速那么多

我想你也可以将你的一组机场划分成地理区域,覆盖
hashcode()
,以便将附近的机场组合在一起,但这不会给你带来太多的速度,而且对靠近区域边缘的机场也没有特别大的帮助。类似地,您可以实现一个,但这些也存在某些边缘条件的问题,这些边缘条件可能与您的机场集有关,也可能与您的机场集无关。(如果您进行搜索,也有GeoHash的开源Java实现。)


无论您做什么,都不要设置一组
HashMaps
来将机场名称映射到其他数据段。这是一种常见的初学者方法,但也是最慢的方法。创建一个对象要好得多。

你看过地理哈希吗?