嗨,我是 Java 新手,所以请使用基本和简单的 Java 方法,这将有助于我快速理解您的想法。
问题:我有n个城市(每个城市都有一个唯一的名称)并且它们都相互连接,因此任何 2 个城市之间都有距离。
存储这些距离的最佳方法是什么,以便以后如果我使用 2 个城市的名称(因为名称是唯一的)我可以检索它们之间的距离?
我正在考虑使用二维数组,但这似乎不是一个好主意(A - B 和 B - A 之间可能存在重复距离,也不能使用城市名称)是吗?
为什么有人对这个问题不屑一顾?
嗨,我是 Java 新手,所以请使用基本和简单的 Java 方法,这将有助于我快速理解您的想法。
问题:我有n个城市(每个城市都有一个唯一的名称)并且它们都相互连接,因此任何 2 个城市之间都有距离。
存储这些距离的最佳方法是什么,以便以后如果我使用 2 个城市的名称(因为名称是唯一的)我可以检索它们之间的距离?
我正在考虑使用二维数组,但这似乎不是一个好主意(A - B 和 B - A 之间可能存在重复距离,也不能使用城市名称)是吗?
为什么有人对这个问题不屑一顾?
添加到您自己的想法的两种可能性
HashMap 的 HashMap - 比 2D 数组更重,但提供易用性,直接按城市名称。
或者,使用enum
城市的名称创建一个,并使用enum
来索引到二维数组。
可变维度(非矩形)的 2DArray - 每行可以有不同的大小,仅存储完整矩阵的一半并根据需要导出另一半。例如创建一个非矩形阵列
如果两个城市之间的距离只是几何距离,则只需要存储每个城市的坐标即可。
否则,将距离存储在 N*N 矩阵中,并String[N]
与名称保持一致。
查看java中集合的概念。这应该可以帮助您实现您正在寻找的内容:
http://docs.oracle.com/javase/tutorial/collections/index.html