打印优先级队列的内容

如何让print_queue在java中正常工作? 这是我自己的队列实现。

使用Iterator()工作正常,除了它以随机顺序打印数字。

package data_structures_java ; import java.util.Iterator; import java.util.PriorityQueue ; import java.util.* ; public class Queue_implementation { PriorityQueue actual_queue ; public Queue_implementation(){ actual_queue = new PriorityQueue() ; } public void add(int num){ actual_queue.add(num) ; } public int remove(){ return actual_queue.remove() ; } public int peek(){ if( actual_queue.isEmpty()) return -1 ; else return actual_queue.peek() ; } public int element(){ return actual_queue.element() ; } public void print_queue(){ PriorityQueuecopy = new PriorityQueue(); copy.addAll(actual_queue) ; Iterator through = actual_queue.iterator() ; while(through.hasNext() ) { System.out.print(through.next() + " ") ; } System.out.println() ; actual_queue.addAll(copy) ; } public static void main(String[] args) { Queue_implementation x = new Queue_implementation() ; x.add(10) ; x.add(9) ; x.add(8) ; x.add(7) ; x.add(6) ; x.print_queue() ; } } 

我试图使用toArray()但它返回Object [],我不知道如何遍历:

 Object[] queue_object_array = x.toArray() ; Arrays.sort(queue_object_array) ; 

使用Iterator()工作正常,除了它以随机顺序打印数字。

这正是它在Javadoc中所说的。 获取PriorityQueue排序的唯一方法是使用poll()remove()方法。