Foreach не действителен для HashMaps?и общий приоритет очереди вопроса - PullRequest
0 голосов
/ 20 ноября 2010
public static void Dijk(HashMap<String, HashMap<String, Integer>> map, String go, String stop){
   PriorityQueue pq = new PriorityQueue();
    for (String x: map){

    }

  }

Почему компилятор говорит мне, что я не могу использовать цикл foreach здесь?

Кроме того, это небольшой раздел большой программы, но у меня не было большого опыта работы с приоритетными очередями. Я хочу использовать его для хранения <String, int> //or Integer.(Я использую PQ в качестве двоичной кучи) (этот метод будет реализовывать алгоритм Дейкстры)

Спасибо за вашу помощь / ответы заранее!

1 Ответ

0 голосов
/ 20 ноября 2010

Предполагая, что вы собираетесь перебирать ключи HashMap, вы должны попробовать

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

}

Что касается очереди с приоритетами, взгляните на коллекцию Java PriorityQueue

...