存储和检索城市之间距离的最佳方法是什么?

时间:2013-02-25 06:22:58

标签: java arrays multidimensional-array arraylist

您好我是Java的新手,所以请使用基本和简单的Java方法来帮助我快速理解您的想法。

问题:我有 n 个城市(每个城市都有一个独特的名字),它们都相互连接,以便任意两个城市之间有距离。

如果我使用2个城市的名称(因为名称是唯一的),那么以后存储这些距离的最佳方法是什么?我可以检索它们之间的距离吗?

我正在考虑使用2-D阵列,但它似乎不是一个好主意(A-B和B-A之间可能的重复距离,也不能使用城市名称)呢?

为什么有人会对这个问题进行缩略?

3 个答案:

答案 0 :(得分:2)

添加到您自己的想法的两种可能性

HashMap的HashMap - 比2D数组重,但直接按城市名称提供易用性。

或者,使用城市名称制作 enum,并使用enum索引到2D数组中。

2DArray的可变维度(非矩形) - 每行可以有不同的大小,只存储整个矩阵的一半,并根据需要派生另一半。 eg of creating a non rectangular array

答案 1 :(得分:0)

如果两个城市之间的距离只是几何距离,则只需要存储每个城市的坐标。

否则,将距离存储在N * N矩阵中,并使用名称保留String[N]

答案 2 :(得分:0)

查看java中集合的概念。这应该可以帮助您实现您的目标:

http://docs.oracle.com/javase/tutorial/collections/index.html