繁体   English   中英

有两个变量的列表

[英]A list with two variables

我想构建一个地图算法并执行以下操作:

首先,在地图上创建所有点。

已经给出了连接的点以及它们之间的长度(整数)。

现在的问题是找到它们之间的最短连接。

因此,我要做的是为每个点创建一个对象,其中包含该特定点连接到的所有点的列表以及从原始点到该点的长度。

一个例子是:

从A到g的距离为7

从A到C的距离为3

其中A连接到c并且A连接到g

我的问题是,如果我使用HashMap,我会发现一些问题,因为HashMap不容易遍历,是否有连接点,是否有更简单的方法可以实现?还是HashMap的替代方法?

请参阅Prim算法Dijkstra算法以及最小生成树

如果您有一组顶点(在您的情况下为一个点),并且它们之间的路径的权重(在您的情况下为距离),则它的MST仅给出连接所有顶点的路径,并且距离的总和最小。

可以使用Prim算法和Dijkstra算法来找到MST。

我相信您正在寻找Djikstra算法的实现 (在加权图上找到最短路径)。

我认为这里的解决方案很合适

由于您询问过遍历HashMap:您应该使用迭代器为您完成此操作:

HashMap hmap = new HashMap();
hmap.put("a", "hello world!");
hmap.put("b", "goodbye!");
hmap.put("c", 42);
Set s = hmap.entrySet();
Iterator i = s.iterator();
while (i.hasNext()) {
    System.out.println(i.next());
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM