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

    } 

    } 

Pourquoi le déclarant me dit-il que je ne peux pas utiliser une boucle foreach ici?Foreach non valide pour HashMaps? et la question de la file d'attente prioritaire générale

également c'est plus petite section d'un grand programme, mais je n'ai pas eu beaucoup d'expérience avec les files d'attente prioritaires que je veux l'utiliser pour tenir un <String, int> //or Integer fais-je ce droit? (Im utilisant le PQ comme un tas binaire essentiellement) (cette méthode implémentera l'algorithme de Dijkstra)

Merci pour votre aide/réponses à l'avance!

Répondre

0

En supposant que vous avez l'intention de parcourir les clés de la table de hachage, vous devriez essayer

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

} 

Quant à la file d'attente prioritaire, jetez un oeil à la collection Java PriorityQueue

+0

Désolé Il a été une très longue journée , mais oui je ne suis pas sûr de savoir où est ma tête à merci! Ma principale préoccupation était d'aller aux clés. De plus, avec la file d'attente Priority telle qu'elle est, cela prendra-t-il (String, Integers) quand j'y ajouterai? J'ai essayé de le lancer comme vous le feriez avec une carte mais elle ne compilerait pas. –

+0

Pouvez-vous fournir un exemple de code/une explication plus claire de ce que vous essayez de faire? –

+0

http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm Si vous regardez la section de pseudo-code, vous verrez ce que j'essaie de faire essentiellement. L'objectif global est de trouver le chemin le plus court à travers une échelle de mots. La carte principale contient le dictionnaire et la sous-carte de chaque élément a les voisins et la distance ils sont de la clé. Ensuite, Dijkstra doit les parcourir l'un après l'autre pour trouver le chemin le plus court pour changer le mot de départ en cible. Je sais comment résoudre le problème mais je crois que je voulais juste connaître la syntaxe pour un PQ de (String, int) –