您好我是Java的新手,所以请使用基本和简单的Java方法来帮助我快速理解您的想法。
问题:我有 n 个城市(每个城市都有一个独特的名字),它们都相互连接,以便任意两个城市之间有距离。
如果我使用2个城市的名称(因为名称是唯一的),那么以后存储这些距离的最佳方法是什么?我可以检索它们之间的距离吗?
我正在考虑使用2-D阵列,但它似乎不是一个好主意(A-B和B-A之间可能的重复距离,也不能使用城市名称)呢?
为什么有人会对这个问题进行缩略?
答案 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