检索数据时,优先级队列给出不同的结果

时间:2019-05-04 18:14:38

标签: java queue priority-queue

我用于每个循环和迭代器来遍历我的priorityQueue,但这给了我不同的结果

        Queue<Pair<Record, Integer>> qq = new PriorityQueue<>(new RecordPairComparator());
        int index = 0;
        for(Run run : runs){
            Iterator<Record> iterator = run.iterator();
            while (iterator.hasNext()) {
              qq.add(new Pair<Record, Integer>(iterator.next(), index));
            }
            index++;
        }
        List<Record> lst = new ArrayList<>();
        // I have no idea why this one gives me different result
//      for(Pair<Record, Integer> p : qq){
//          lst.add(p.getFirst());
//      }
        while(!qq.isEmpty()){
            lst.add(qq.poll().getFirst());
        }
        Run sortedRes = new Run();
        sortedRes.addRecords(lst);
        return sortedRes;

由于某种原因,他们给我的命令略有不同。有人可以帮忙吗?非常感谢!

0 个答案:

没有答案