2013-05-17 91 views
0

我正在做一个项目,我必须从文本文件中加载航班详细信息列表。我读了文本文件,并将3个值加载到散列表中。这3个值是这种格式(机场ID,收件人,发件人)。 To和From被放到一个列表中,然后放入hashmap和ID中。查找所有可能的路线Java

我是在找到从所选的To和From的所有可能路线时遇到问题。我已经阅读了Dijkstra的算法,但由于缺乏知识,我不知道如何应用它。

下面是我的代码的一个例子,我可以找到1个转接点的直达航班和航班。

for (int i = 0; i < route.get("all").size(); i++) { 
     String boardAir = route.get("all").get(i).from; 
     String alightAir = route.get("all").get(i).to; 
     if (boardAir.equals(ar.boardAirport) && alightAir.equals(ar.alightAirport)) { 
      airline = route.get("all").get(i).id; 
      System.out.println("Direct Airlines = " + alr.airline1.get(airline)); 
      System.out.println("From = " + ar.airport1.get(boardAir) + "\tDestination = " + ar.airport1.get(alightAir)); 
      System.out.println(); 
     } else { 
      System.out.println("No direct flight found."); 
     } 
     if (boardAir.equals(ar.boardAirport)) { 
      for (int j = 0; j < route.get(route.get("all").get(i).id).size(); j++) { 
       String transfer = route.get(route.get("all").get(i).id).get(j).from; 
       String finalDest = route.get(route.get("all").get(i).id).get(j).to; 

      } 
     } 
    } 
+0

删除注释的代码,会更好地阅读和理解。 –

回答

1

Dijkstra算法将是一个很好的算法来研究。如果您仔细阅读并且仍然遇到问题,我会建议一些额外的资源。首先,普林斯顿大学有一本非常好的算法书,它完全在线。你可以在http://algs4.cs.princeton.edu/home/找到,你应该参考的章节是第4章。它带有示例代码,我认为它会为你提供足够的信息。否则,如果你更多的是视觉学习者,请查看YouTube搜索“Dijkstra's Algorithm”。那里实际上有一些好的vids。