2010-11-19 11 views
0
public static void Dijk(HashMap<String, HashMap<String, Integer>> map, String go, String stop){ 
    PriorityQueue pq = new PriorityQueue(); 
    for (String x: map){ 

    } 

    } 

ここでforeachループを使用できないと言っているのはなぜですか?ForeachはHashMapsには有効ではありませんか?一般的な優先順位キューの質問

また、これは大きなプログラムの小さな部分ですが、優先度の高いキューではあまり経験がありませんでした。これを使用するには、<String, int> //or Integerを使用しますか? (Imは本質的にバイナリヒープとしてPQを使用しています)(このメソッドはDijkstraのアルゴリズムを実装します)

ありがとうございました!

答えて

0

あなたは、あなたがJavaのコレクションを見てみましょう、プライオリティキューについては

for (String x: map.keySet()){ 

} 

試してみてくださいにHashMapのキーを反復するつもりと仮定すると、PriorityQueue

+0

それは非常に長い1日だった申し訳ありませんしかし、はい私は私の頭があなたに感謝のどこにあるか分からない!私の主な関心事はキーを得ることでした。また、優先度キューをそのまま使用すると、(文字列、整数)が追加されますか?マップのようにキャストしようとしましたが、コンパイルされませんでした。 –

+0

あなたがしようとしていることのコード例/より明確な説明を提供できますか? –

+0

http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm 擬似コードのセクションを見ると、基本的に何をしようとしているのか分かります。全体的な目標は、単語のはしごを通る最短経路を見つけることです。メイン・マップにはディクショナリが含まれており、各要素のサブマップにはネイバーとキーからの距離があります。その後、ダイクストラは、開始単語をターゲットに変更する最短のパスを見つけるために、一度に1つずつ移動する必要があります。私は問題の解決方法を知っていますが、私はちょうど(String、int)のPQ構文を知りたいと思っています。 –

関連する問題