【问题标题】:Best way to store and retrieve the distance between cities?存储和检索城市之间距离的最佳方法?
【发布时间】:2013-02-25 06:22:57
【问题描述】:

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

问题:我有 n 个城市(每个城市都有一个唯一的名称)并且它们都相互连接,因此任何 2 个城市之间都有距离。

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

我在考虑使用二维数组,但这似乎不是一个好主意(A - B 和 B - A 之间可能存在重复距离,也不能使用城市名称)是吗?

为什么有人不赞成这个问题?

【问题讨论】:

  • 二维数组(dist)有什么问题?我建议你给每个城市一个数字,然后你可以用 dist[j][i] 访问城市'i'和城市'j'之间的距离
  • 给每个城市一个数字是个好主意。谢谢!如何解决重复问题?我还需要使用城市名称。

标签: java arrays multidimensional-array arraylist


【解决方案1】:

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

HashMap 的 HashMap - 比 2D 数组更重,但易于使用,直接按城市名称。

或者,使用城市名称创建一个enum,并使用enum 对二维数组进行索引。

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

【讨论】:

  • 完美!将尝试实施除 HashMap 之外的所有建议,如果我有问题,请返回此处更新问题。谢谢!
【解决方案2】:

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

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

【讨论】:

    【解决方案3】:

    查看java中集合的概念。这应该可以帮助您实现您正在寻找的内容:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-25
      • 2014-03-09
      • 1970-01-01
      • 2021-12-22
      • 2010-09-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多